欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 资讯 > OpenCV 识别图片颜色并绘制轮廓

OpenCV 识别图片颜色并绘制轮廓

2024/12/22 0:16:33 来源:https://blog.csdn.net/h1413517383/article/details/144435530  浏览:    关键词:OpenCV 识别图片颜色并绘制轮廓

实验原理:

开运算 :就是先腐蚀后膨胀

寻找轮廓:从二值化的图片中寻找轮廓使用面积排查:求解遍历出来的每个轮廓的面积

实验代码:

import  cv2
import numpy as np#输入图片
img = cv2.imread("./color_1.png")
img = cv2.resize(img,(0,0),fx =0.7,fy=0.7)#识别颜色 转化hsv
img_hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
#设定识别颜色范围
hsv_min = np.array([26, 43, 46])
hsv_max = np.array([34, 255, 255])img_color = cv2.inRange(img_hsv,hsv_min,hsv_max)img_blur = cv2.medianBlur(img_color,5)#5 开运算
kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(5,5,))img_erode = cv2.erode(img_blur,kernel)
img_open = cv2.dilate(img_blur,kernel)#6、寻找轮廓
contours,_ = cv2.findContours(img_open,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)#7、for循环遍历所有轮廓
img_copy = img.copy()
for i in contours:#通过面积筛选你想要的轮廓if cv2.contourArea(i)<200 or cv2.contourArea(i)>200000:continue# cv2.drawContours(img_copy,contours,-1,(0,0,255),2)cv2.drawContours(img_copy, [i], 0, (0, 0, 255), 2)cv2.imshow("img",img)
cv2.imshow("img_copy",img_copy)
cv2.waitKey(0)

实现现象

可以通过修改

cv2.contourArea的范围来修改轮廓的数量

如图:

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com