本文为 AI 研习社编译的技术博客,原标题 :
Object detection via color-based image segmentation using python
作者 |Salma Ghoneim
翻译 | Mr丶Lonely
校对 | 酱番梨 审核 | 约翰逊·李加薪 整理 | 立鱼王
原文链接:
https://towardsdatascience.com/object-detection-via-color-based-image-segmentation-using-python-e9b7c72f0e11图片来自pexels
入门
如果你已经安装了jupyter notebook或者一个IDE,你可以运行python然后下载OpenCV,只需要跳到执行即可。
工具
我们今天的英雄是Anaconda。一个免费开源的发行版,帮助我们下载不同的软件包并且将它们整理到独立的环境之中。
维基百科告诉我们关于Anaconda的内容:
Anaconda是用于科学计算(数据科学,机器学习应用程序,大规模数据处理,预测分析等)的Python和R编程语言的免费开源发行版,旨在简化包管理和部署。包版本由包管理系统conda管理。Anaconda发行版已被超过1200万用户使用,包括1400多种适用于Windows,Linux和MacOS的流行数据科学包。
创建环境
打开bash(cmd)并输入
$ conda create -n myEnv python=3
提示下载软件包时选择y(表示是)。
这将在浏览器中为您打开jupyter notebook。
$ source activate myEnv
$ conda install anaconda
$ conda activate myEnv
$ conda install opencv
$ jupyter notebook
一些重要的术语
轮廓
轮廓可以简单地解释为连接所有连续点(连同边界)的曲线,具有相同的颜色或亮度。轮廓是形状分析和目标检测和识别的有用工具。
阈值
在灰度图像上应用阈值处理使其成为二值图像。你可以设置一个阈值,其中低于此阈值的所有值都将变为黑色,高于此阈值的所有值都将变为白色。
执行
现在你已经有了所有你需要的东西。
我们将从一个简单的例子开始,向你展示基于颜色的分割是如何工作的。
忍受我一下,直到我们得到好的东西.一个Ombre圈 - 使用photoshop制作的图像
如果你想和我一起尝试,你可以从原文免费获得这个图像。
在下面的代码中,我将把这个图像分成17个灰度级。然后使用轮廓测量每个级别的区域。
import cv2
import numpy as np
def viewImag