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 小时前
F0505S-2WR3 适配优选 钡特电源 DF2-05S05LS|2W 隔离 DC-DC 模块电源5V转5V硬件选型参数规格解析
大数据·网络·人工智能
a1117762 小时前
三色软糖坠落玻璃池 THreeJS kimi
前端·人工智能·threejs
xian_wwq2 小时前
【学习笔记】解剖 Claude Code —— Anthropic 的 Harness 参考实现-09/15
人工智能·笔记·学习
Black_Rock_br3 小时前
打通 PyTorch Monarch 与 ROCm:单 Controller 架构的异构算力实战
人工智能·pytorch·python·开源
其实防守也摸鱼3 小时前
Kimi K3深度测评:长文本之外的真实力
运维·开发语言·网络·人工智能·python·学习·安全
wu8587734573 小时前
从 Prompt 到 Loop:拆解 AI 工程化四范式的演进逻辑与落地边界
人工智能·ai·prompt·aigc·ai编程
爱查宝小二3 小时前
爱查宝 AIGC 检测与改写实效评测
人工智能·aigc
AI新角度3 小时前
增量测试与影响分析:只跑受变更波及的用例
人工智能
FII工业富联科技服务3 小时前
从85% AI应用覆盖到规模化运营:制造企业灯塔AI转型架构与落地方法解析
人工智能·架构·制造
大龄码农有梦想3 小时前
Codex、Claude Code 等 AI 编程工具对软件工程的启发
人工智能·软件工程·agent·ai编程·ai agent·智能体·智能体平台