python如何使用随机颜色_使用 Python 通过基于颜色的图像分割进行物体检测

论坛 期权论坛     
选择匿名的用户   2021-5-22 16:48   1307   0
<div>
<p></p>
<div style="text-align:center;">
  <img alt="v2-729e51a4b593564309fc535c7a29f06b_1440w.jpg?source&#61;172ae18b" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-fbca069fff784e6bd9dd2025fac2192f">
</div>
<p></p>
<div style="text-align:center;">
  <img alt="v2-4140c70143d365bcc561fee07bf7740a_b.jpg" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-6db71e018bed39b02811c1c1ec644663.jpg">
</div>
<blockquote>
  本文为 AI 研习社编译的技术博客,原标题 :
  <br>Object detection via color-based image segmentation using python
  <br>作者 |
  <i> Salma Ghoneim</i>
  <br>翻译 | Mr丶Lonely
  <br>校对 | 酱番梨 审核 | 约翰逊·李加薪 整理 | 立鱼王
  <br>原文链接:
  https://
  towardsdatascience.com/
  object-detection-via-color-based-image-segmentation-using-python-e9b7c72f0e11
  
</blockquote>
<p></p>
<div style="text-align:center;">
  <img alt="v2-09ae4cb31afcee18ec59e932dd05b348_b.jpg" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-eed5d2d6908075e34a34270654f2415f.jpg">
</div>
<figcaption>
  图片来自pexels
</figcaption>
<h2><b>入门</b></h2>
<p>如果你已经安装了jupyter notebook或者一个IDE,你可以运行python然后下载OpenCV,只需要跳到执行即可。</p>
<p><b>工具</b></p>
<p>我们今天的英雄是Anaconda。一个免费开源的发行版,帮助我们下载不同的软件包并且将它们整理到独立的环境之中。</p>
<p>维基百科告诉我们关于Anaconda的内容:</p>
<p><i>Anaconda是用于科学计算(数据科学,机器学习应用程序,大规模数据处理,预测分析等)的Python和R编程语言的免费开源发行版,旨在简化包管理和部署。包版本由包管理系统conda管理。Anaconda发行版已被超过1200万用户使用,包括1400多种适用于Windows,Linux和MacOS的流行数据科学包。</i></p>
<p>以下是有关如何下载Anaconda的详细教程:<br>适用于Windows的Anaconda和适用于Linux的Anaconda<u>https://docs.anaconda.com/anaconda/install/windows/</u><u>https://docs.anaconda.com/anaconda/install/linux/</u></p>
<p><b>创建环境</b></p>
<p>打开bash(cmd)并输入</p>
<div class="blockcode">
  <pre class="blockcode"><code>$ conda create -n myEnv python&#61;3</code></pre>
</div>
<p>提示下载软件包时选择y(表示是)。 </p>
<p>这将在浏览器中为您打开jupyter notebook。 </p>
<div class="blockcode">
  <pre class="blockcode"><code>$ source activate myEnv
$ conda install anaconda
$ conda activate myEnv
$ conda install opencv

$ jupyter notebook</code></pre>
</div>
<h2><b>一些重要的术语</b></h2>
<p><b>轮廓</b></p>
<p>轮廓可以简单地解释为连接所有连续点(连同边界)的曲线,具有相同的颜色或亮度。轮廓是形状分析和目标检测和识别的有用工具。 </p>
<p><b>阈值 </b></p>
<p>在灰度图像上应用阈值处理使其成为二值图像。你可以设置一个阈值,其中低于此阈值的所有值都将变为黑色,高于此阈值的所有值都将变为白色。 </p>
<h2><b>执行</b></h2>
<p>现在你已经有了所有你需要的东西。</p>
<p>我们将从一个简单的例子开始,向你展示基于颜色的分割是如何工作的。 </p>
<p>忍受我一下,直到我们得到好的东西.</p>
<p></p>
<div style="text-align:center;">
  <img alt="v2-66dd44c1b06d67ababe2aac445dfaaaa_b.jpg" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-9c6e29233a5548662e3702ccbcfb947d.jpg">
</div>
<figcaption>
  一个Ombre圈 - 使用photoshop制作的图像
</figcaption>
<p>如果你想和我一起尝试,你可以从原文免费获得这个图像。</p>
<p>在下面的代码中,我将把这个图像分成17个灰度级。然后使用轮廓测量每个级别的区域。</p>
<div class="blockcode">
  <pre class="blockcode"><code>import cv2
import numpy as np

def viewImage(image):
    cv2.namedWindow(&#39;Display&#39;, cv2.WINDOW_NORMAL)
    cv2.imshow(&#39;Display&#39;, image)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
   
def grayscale_17_levels (image):
    high &#61; 255
    while(1):  
        low &#61; high - 15
        col_to_be_changed_low &#61; np.array([low])
        col_to_be_changed_high &#61; np.array([high])
        curr_mask &#61; cv2.inRange(gray, col_to_be_changed_low,col_to_be_changed_high)
        gray[curr_mask &gt; 0] &#61; (high)
        high -&#61; 15
        if(low &#61;&#61; 0 ):
            break
            
image &#61; cv2.imread(&#39;./path/to/image&#39;)
viewImage(image)
gray &#61; cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
grayscale_17_levels(gray)
viewImage(gray)</code></pre>
</div>
<p></p>
<div style="text-align:center;">
  <img alt="v2-02e4450b5f79d352744444725ef416df_b.jpg" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-baa45081e7047051bbe2e277a124aee3.jpg">
</div>
<figcaption>
  相同的图像分为17个灰度级
</figcaption>
<div class="blockcode">
  <pre class="blockcode"><code>def get_area_of_each_gray_level(im):

## convert image to gray scale (must br done before contouring)
    image &#61; cv2.cvtColor(im, cv2.COLOR_BGR2GRAY
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP