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)

三、效果图

相关推荐
琥珀食酒社2 分钟前
菜鸟找到舒适区
大数据·人工智能
猿类崛起@7 分钟前
2025秋招LLM大模型多模态面试题:110道大模型面试常见问题及答案,助你拿下AI工程师岗位!
人工智能·机器学习·ai·性能优化·大模型·prompt·大模型训练
MonkeyKing_sunyuhua9 分钟前
量化只支持a8w8和w4a8,其中a8w8和w4a8是什么意思?
人工智能·算法
霍格沃兹测试开发学社9 分钟前
被裁后,我如何实现0到3份大厂Offer的逆袭?(内附面试真题)
人工智能·selenium·react.js·面试·职场和发展·单元测试·压力测试
颜颜yan_12 分钟前
CANN异构计算架构深度解析:打造高效AI开发利器
人工智能·架构·昇腾·cann
paopao_wu13 分钟前
人脸检测与识别-InsightFace:向量相似性搜索Faiss
人工智能·yolo·目标检测·ocr·faiss
GISer_Jing13 分钟前
SSE Conf大会分享——UTOO WASM:AI时代的浏览器原生极速研发套件
前端·人工智能·架构·wasm
海边夕阳200623 分钟前
【每天一个AI小知识】:什么是Prompt?
人工智能·prompt
KKKlucifer24 分钟前
数据分类分级为基的跨域流通权限动态管控技术:构建安全可控的跨域数据流通体系
大数据·数据库·人工智能
机器之心28 分钟前
NeurIPS 2025 | DePass:通过单次前向传播分解实现统一的特征归因
人工智能·openai