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)
相关推荐
土星云SaturnCloud18 小时前
抽水蓄能设备智慧运营:基于土星云边缘计算实现机组全生命周期预测性维护
服务器·人工智能·ai·边缘计算
江畔柳前堤18 小时前
系统的本质——从LTI系统到神经网络
人工智能·深度学习·神经网络·机器学习·计算机视觉·数据挖掘·语音识别
HackTwoHub19 小时前
轻量化AI渗透武器库|ARTEX自主攻防系统、资产梳理、漏洞挖掘、链路分析全流程智能化落地
人工智能·安全·web安全·网络安全·系统安全·网络攻击模型·安全架构
中电金信19 小时前
WAIC 2026媒体聚焦:中电金信的AI工程化思考与实践
人工智能
冬奇Lab19 小时前
码库知识库系列(03):代码 Embedding 策略——原始代码反而比注释增强更好
人工智能
冬奇Lab19 小时前
开源项目第172期:agentOS — 以库的形式给 AI Agent 一个操作系统,冷启动 92x 更快、内存 47x 更少
人工智能·开源·agent
大橙子打游戏19 小时前
make-goal:把长期 AI 任务从聊天记录里解放出来
人工智能
华盈生物19 小时前
AI+病理:从切片到数据,空间多模态解析肿瘤微环境
人工智能·单细胞测序·空间单细胞蛋白组·单细胞组织原位空间蛋白组学·组织原位空间蛋白组学·超多重蛋白成像·ai+病理
IT_陈寒20 小时前
Vite热更新失效?你可能漏了这个配置
前端·人工智能·后端
禹亮科技20 小时前
制造业100㎡跨国技术评审会议室音视频整体解决方案(亿联+思必驰+讯飞AI落地实践)
人工智能·音视频·视频会议系统集成