当前位置:   article > 正文

Python+Opencv根据颜色进行目标检测_opencv python识别颜色数量

opencv python识别颜色数量

一、什么是颜色目标检测?

  所谓的颜色目标检测,即根据物体的颜色来快速的进行目标定位,该算法的思路比较简单,但是却有很大的使用价值。

二、如何实现基于颜色的目标检测?

  整个算法的实现步骤比较简单,具体的步骤如下所示:

  • 步骤1-根据图片中的目标设定合适的lower和upper阈值
  • 步骤2-使用cv2.inRange(img,lower, upper)函数来进行阈值化操作,其中lower和upper就是我们所设定的阈值;
  • 步骤3-使用cv2.bitwise_and()函数进行与操作,即选择出合适的目标;

三、算法代码实现

# coding=utf-8
# 导入python包
import numpy as np
import argparse
import imageio
import cv2

# 设置并解析参数
ap = argparse.ArgumentParser()
ap.add_argument("-i", "--image", help = "path to the image")
args = vars(ap.parse_args())

# 读取图片
image = cv2.imread(args["image"])
# 定义边界列表 (lower[r, g, b], upper[r, g, b])
boundaries = [    ([17, 15, 100], [50, 56, 200]),    ([86, 31, 4], [220, 88, 50]),    ([25, 146, 190], [62, 174, 250]),    ([103, 86, 65], [145, 133, 128])]
img_mask = []
# 循环遍历所有的边界
for (lower, upper) in boundaries:   
 	# 创建上边界和下边界    
	 lower = np.array(lower, dtype = "uint8")    
	 upper = np.array(upper, dtype = "uint8")
   	 # 在指定边界内查找颜色并应用掩码    
   	 mask = cv2.inRange(image, lower, upper)    
   	 # 进行与操作    
   	 output = cv2.bitwise_and(image, image, mask = mask); img_mask.append(output)
    # 显示结果    
    cv2.imshow("images", np.hstack([image, output]))    
    cv2.waitKey(0)
imageio.mimsave("mask.gif", img_mask)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

四、算法运行流程

  1. 打开一个cmd界面或者打开其它的工具;
  2. cd /d xxx 切换到代码路径,xxx表示代码的具体路径;
  3. python detect_color.py -i img1.png 执行代码;
  4. 依次按下Enter键来观察结果。

五、效果展示与分析

  下图展示的是算法的输出结果,算法迭代着依次输出红色、蓝色、黄色和灰色的目标,满足了我们预期的要求。
在这里插入图片描述
在这里插入图片描述

六、思维扩展

  该算法的思路和实现都很简单,效果也不错,不足之处是我们需要根据目标提前设置相应的lower和upper参数值,而这两个值严重的影响着该算法的性能,那么我们可不可以应用一种自动的方法来获得这两个值呢,使得整个算法变成全自动化的,这个问题留给大家自己去思考!!!

参考资料

[1] 参考链接-参考链接

注意事项

[1] 如果您对AI、自动驾驶、AR、ChatGPT等技术感兴趣,欢迎关注我的微信公众号“AI产品汇”,有问题可以在公众号中私聊我!
[2] 该博客是本人原创博客,如果您对该博客感兴趣,想要转载该博客,请与我联系(qq邮箱:1575262785@qq.com),我会在第一时间回复大家,谢谢大家的关注.
[3] 由于个人能力有限,该博客可能存在很多的问题,希望大家能够提出改进意见。
[4] 如果您在阅读本博客时遇到不理解的地方,希望您可以联系我,我会及时的回复您,和您交流想法和意见,谢谢。
[5] 本文测试的图片可以通过关注微信公众号AI产品汇之后找我索取!
[6] 本人业余时间承接各种本科毕设设计和各种小项目,包括图像处理(数据挖掘、机器学习、深度学习等)、matlab仿真、python算法及仿真等,有需要的请加QQ:1575262785详聊!!!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/836881
推荐阅读
相关标签
  

闽ICP备14008679号