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

一、实验原理

使用OpenCV库在图像中识别和绘制特定颜色(黄色)的轮廓

二、实验代码

复制代码
import cv2
import numpy as np

# 读取图片并调整大小
img = cv2.imread('./color_1.png')
img = cv2.resize(img,(600,600))

# 将图片从BGR颜色空间转换到HSV颜色空间
img_hsv = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)

# 定义黄色的HSV范围
yellow_min = np.array([26,43,46])
yellow_max = np.array([34,255,255])

# 根据黄色的HSV范围创建掩码
img_color = cv2.inRange(img_hsv,yellow_min,yellow_max)

# 使用中值滤波去除噪声
img_median_blur = cv2.medianBlur(img_color,5)

# 获取椭圆形的结构元素
kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(3,3))

# 腐蚀图像以去除不需要的细节
img_erode = cv2.erode(img_median_blur,kernel)

# 膨胀图像以恢复目标区域的大小
img_erode_dilate = cv2.dilate(img_erode,kernel)

# 查找轮廓
contours,hierarchy = cv2.findContours(img_erode_dilate,cv2.RETR_LIST,cv2.CHAIN_APPROX_SIMPLE)

# 复制原图以绘制轮廓
img_copy = img.copy()



# 遍历所有轮廓,筛选出面积符合要求的轮廓并绘制
for i in contours:
    if cv2.contourArea(i)<200 or cv2.contourArea(i)>20000000:
        continue
    cv2.drawContours(img_copy,[i],0,(0,0,255),2)

# 显示原图和绘制了轮廓的图像
cv2.imshow('img',img)
cv2.imshow('img_draw',img_copy)
cv2.waitKey(0)

三、实验现象

相关推荐
深蓝AI1 小时前
Gemini 4 Carbon 登顶却买不到:59 分拿下智能指数第一,单任务 7.76 美元,幻觉率从 4% 涨到 11%
人工智能·程序员
云-缩影8 小时前
文生图技术落地:从广告到游戏,哪些场景真的能用
人工智能·游戏
冬奇Lab10 小时前
一天一个开源项目(第254篇):NVIDIA Auto Ontology —— 给数据 Agent 搭一层「可认证的语义层」,答不了就老实说答不了
人工智能
其实防守也摸鱼11 小时前
个人学习 Pwn 思路:从基础到漏洞利用的进阶路径
大数据·前端·人工智能·chrome·算法·安全·网络安全
甲维斯11 小时前
Workbuddy+HY4 略超预期!
人工智能
天远API12 小时前
零信任架构实战:基于天远运营商三要素详版V即时版构建自动化消费电子大促电商平台高价值权益秒杀与优惠券防羊毛高并发实名核验网关
运维·人工智能·架构·自动化
朱涛的自习室12 小时前
212 个需求、22 万行代码:Agent 接管开源项目的 19 天
android·前端·人工智能
美林数据Tempodata12 小时前
高职大数据技术专业升级的六个落地样本:从产业链需求库到实训室数据链路
大数据·人工智能·数字化转型·产教融合·ai教育
美好世界12 小时前
OpenAI Codex 源码深度剖析(三):执行引擎与内核沙箱深度剖析
人工智能