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)

三、效果图

相关推荐
Navicat中国3 分钟前
AI 代码补全如何改变 DBA 编写 SQL 的方式
数据库·人工智能·sql·dba·navicat
科技互联.18 分钟前
2026年5月观察:四大头部工具如何重塑短视频矩阵的“生产规则”
大数据·人工智能·矩阵
智象科技18 分钟前
智能运维(AIOps),正在改变IT行业格局
运维·人工智能·运维开发·devops·智能运维
数据门徒19 分钟前
神经网络原理 第五章:径向基函数网络
网络·人工智能·神经网络
TG_yunshuguoji22 分钟前
阿里云代理商:DeepSeek V4 在阿里云部署的经济性革命
人工智能·阿里云·云计算·ai智能体·deepseek v4
一切皆是因缘际会24 分钟前
2026年AGI突围:自主智能体驱动,数字生命从架构落地到自我迭代全解析
人工智能·深度学习·机器学习·架构·系统架构·agi
Mr数据杨25 分钟前
【CanMV K210】音频实验 I2S 数字麦克风与 FFT 频谱可视化
人工智能·音视频·硬件开发·canmv k210
国产电子元器件26 分钟前
ACS758国产替代方案有哪些?工程师如何选择霍尔电流传感器
人工智能
AI棒棒牛31 分钟前
RT-DETR最新创新改进系列:2D轻量解码结构重塑检测颈部,减少下采样链路,降低计算冗余,让端到端检测更快更轻!【轻装上阵,实时优先】
人工智能·深度学习·目标检测·计算机视觉·rt-detr
陆水A34 分钟前
运输时效预测模型:静态路由时效的计算与验证
大数据·人工智能·算法·spark·数据库开发·etl工程师