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)

三、效果图

相关推荐
纳米体育数据3 小时前
体育数据API接口怎么选?纳米数据一站式接入18+项目,助力产品快速上线
人工智能
SL-staff3 小时前
(十九)「JVS-Rules规则引擎 V2.5」— 简单评分卡节点
人工智能·低代码·规则引擎·jvs-rules·决策流·信用评分卡·简单评分卡节点
xd1855785553 小时前
电影匹配引擎-基于鸿蒙的心情电影推荐应用开发实践
人工智能·安全·华为·harmonyos·鸿蒙
sramdram3 小时前
离线语音识别芯片|智能离线语音SoC芯片语音识别方案
人工智能·语音识别·语音识别芯片·离线语音识别芯片
MemOS3 小时前
Memory 系统全面横评:谁让 Agent 具备更强长期智能?
人工智能
delishcomcn3 小时前
AI视觉+分切机:烫金箔废边自动寻优算法实战
人工智能
秦任之3 小时前
Gliding Horse 整体架构拼图:当 AI Agent 有了自己的操作系统
人工智能·架构
CIO_Alliance3 小时前
企业级AI化转型基础认知(2):大语言模型、RAG、Agent与微调核心概念一次厘清
人工智能·深度学习·机器学习·语言模型·ipaas·系统集成·企业cio联盟
Kim_wang4 小时前
agent项目部署流程
人工智能·后端
隔窗听雨眠4 小时前
从追赶者到定义者:中国BI如何借助AI实现弯道超车
大数据·人工智能