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

现象:识别黄色图片并把黄色图片的轮廓绘制一下

原理:

1、输入图片

2、识别颜色转换HSV颜色空间

3、识别颜色范围,用inrange找到范围

4、进行滤波

5、形态学变换,先腐蚀后膨胀

6、寻找轮廓

用两个参数接收cv2.findContours(img_change1,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)

7、for循环遍历所有轮廓

8、通过面积筛选你要的轮廓cv2.contourArea()然后绘制轮廓

9、输出图片

代码:

python 复制代码
import cv2
import numpy as np

#1、输入图片
img=cv2.imread('./color_1.png')
img=cv2.resize(img,(0,0),fx=0.8,fy=0.8)
#2、识别颜色转换HSV颜色空间
img_hsv=cv2.cvtColor(img,cv2.COLOR_BGR2HSV)
#3、识别颜色范围,用inrange找到范围
hsv_min=np.array([26,43,46])
hsv_max=np.array([34,255,255])
img_color=cv2.inRange(img_hsv,hsv_min,hsv_max)

#4、进行滤波
img_median_blur=cv2.medianBlur(img_color,5)

#5、形态学变化----开运算,先腐蚀后膨胀
kernal=cv2.getStructuringElement(cv2.MORPH_ELLIPSE,#指定形状 矩形 椭圆 十字形
                               (9,9))
img_change=cv2.erode(img_median_blur,kernal)
img_change1=cv2.dilate(img_change,kernal)

#6、寻找轮廓
contours,_=cv2.findContours(img_change1,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)

#7、for循环遍历所有轮廓
#通过面积筛选你想要的轮廓cv2.contourArea()
#绘制轮廓
img_copy=img.copy()
for i in contours:
    if cv2.contourArea(i)<200 or cv2.contourArea(i)>200000000000000:
        continue
    #符合条件绘制轮廓
    cv2.drawContours(img_copy,[i],-1,(0,0,255),2)

#8、输出图片
cv2.imshow('image',img)
cv2.imshow('img_copy',img_copy)
cv2.waitKey(0)
相关推荐
信马堂2 小时前
WorkBuddy 接入第三方模型 API 全流程:安装与配置实录
人工智能·大模型·token·ai算力·workbuddy
朝朝辞暮i3 小时前
VLA 系统学习第 4 课:一个 Batch 进入神经网络后,模型到底是怎么“学会”的?
人工智能·python·神经网络·vla
IT古董3 小时前
《FDE前沿部署工程师实战教程》33 - Enterprise AI Observability:从Agent Trace到全链路智能运维
数据库·人工智能
xsd202411184 小时前
地网腐蚀AI识别算法全解析:从锈蚀图像到地下腐蚀快速定位
人工智能
oooost4 小时前
pytorch学习笔记2(transformer)
人工智能·机器学习
云杂项4 小时前
Exploring Model Inversion Attacks in the Black-box Setting(个人笔记)
人工智能
还卿一钵无情泪5 小时前
Unsloth 微调 构建自己的大模型 没有GPU也能微调
linux·开发语言·人工智能·python·大模型·nlp·unsloth
冬奇Lab5 小时前
LLM 驱动的自动化测试系列(06):移动端自动化(二)——DroidRun/Mobilerun 的角色级模型拆分
人工智能·测试
冬奇Lab6 小时前
一天一个开源项目(第230篇):HandRaw-Style —— 把 327 种手绘风格、165 种排版、36 种配色编号化,让 AI 画图不再每次都飘
人工智能·开源·资讯
罗西的思考6 小时前
从陶哲轩的访谈看:AI 数学研究方法论 & 给其它行业的启示
人工智能