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

一、原理

步骤

  • 读取图像
  • 将图像从 RGB 转换为 HSV 颜色空间
  • 根据设定的颜色范围进行掩模处理,得到目标颜色的区域。
  • 查找轮廓
  • 在原图上绘制轮廓

二、代码

python 复制代码
import cv2
import numpy as np

# 1输入图片
img=cv2.imread('./8.png')
img=cv2.resize(img,(0,0),fx=0.7,fy=0.7)

# 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_mask=cv2.inRange(img_hsv,hsv_min,hsv_max)

# 4进行滤波
img_median_blur=cv2.medianBlur(img_mask,3)

# 5 进行形态学变换,先腐蚀再膨胀
kernal=cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(5,5))
img_e=cv2.erode(img_median_blur,kernal)
img_d=cv2.dilate(img_e,kernal)

# 6 寻找轮廓
contours,hierarchy=cv2.findContours(
    img_d,
    cv2.RETR_LIST,
    cv2.CHAIN_APPROX_SIMPLE
                    )


# 7 for循环寻找轮廓,通过面积筛选出你想要的轮廓,绘制轮廓
img_copy = img.copy()
for i in contours:
    if 200<cv2.contourArea(i)<2000000:
        cv2.drawContours(img_copy,
                                    [i],
                                    0,
                                    (0, 0, 255),
                                    2
                                    )
    else:
        continue
# 8 输出图片
cv2.imshow('img',img_copy)
cv2.waitKey(0)

三、效果图

相关推荐
文心快码BaiduComate5 分钟前
全运会,用文心快码做个微信小程序帮我找「观赛搭子」
前端·人工智能·微信小程序
ChinaRainbowSea6 分钟前
13. Spring AI 的观测性
java·人工智能·后端·spring·flask·ai编程
2501_9411429311 分钟前
基于区块链的数字身份管理:探索安全与隐私的未来
网络·数据库·人工智能
B站_计算机毕业设计之家15 分钟前
python手写数字识别系统 CNN算法 卷积神经网络 OpenCV和Keras模型 计算机视觉 (建议收藏)✅
python·深度学习·opencv·机器学习·计算机视觉·cnn
骑猪兜风23323 分钟前
谷歌 AI IDE Antigravity 系统提示词分析
人工智能·ai编程·ai ide·gemini3·谷歌gemini3·antigravity
Jing_jing_X32 分钟前
ChatGPT 四种模式:普通对话、推理思考、深度研究、学习模式有什么区别?
人工智能·学习·chatgpt
汀、人工智能32 分钟前
AI Compass前沿速览:Gemini 3、Grok 4.1、GPT-5.1、千问、Lumine-3D开世界AI智能体
人工智能·gemini 3·grok4.1·gpt 5.1
用户51914958484533 分钟前
利用配置错误的postMessage()函数实现DOM型XSS攻击
人工智能·aigc
Valueyou241 小时前
引入基于加权 IoU 的 WiseIoU 回归损失以提升 CT 图像检测鲁棒性
人工智能·python·深度学习·目标检测