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)
相关推荐
IT_陈寒2 分钟前
React 性能优化:5个实战技巧让首屏加载提升50%,开发者亲测有效!
前端·人工智能·后端
久未8 分钟前
Pytorch autoload机制自动加载树外扩展(Autoload Device Extension)
人工智能·pytorch·python
Apifox.10 分钟前
如何在 Apifox 中通过 AI 一键生成几十个测试用例?
人工智能·程序人生·ai·测试用例·ai编程
Learn Beyond Limits27 分钟前
TensorFlow Implementation of Content-Based Filtering|基于内容过滤的TensorFlow实现
人工智能·python·深度学习·机器学习·ai·tensorflow·吴恩达
是Yu欸32 分钟前
【AI视频】从单模型,到AI Agent工作流
人工智能·ai·ai作画·aigc·音视频·实时音视频
AI人工智能+42 分钟前
发票识别技术:结合OCR与AI技术,实现纸质票据高效数字化,推动企业智能化转型
人工智能·nlp·ocr·发票识别
用户5191495848451 小时前
Aniyomi扩展开发指南与Google Drive集成方案
人工智能·aigc
ezl1fe1 小时前
第零篇:把 Agent 跑起来的最小闭环
人工智能·后端·agent
LabVIEW开发1 小时前
LabVIEW机器视觉轮廓与曲率分析
计算机视觉·labview·labview知识·labview功能·labview程序
说私域1 小时前
开源链动2+1模式AI智能名片S2B2C商城小程序在竞争激烈的中低端面膜服装行业中的应用与策略
大数据·人工智能·小程序