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)

三、实验现象

相关推荐
亿信华辰软件几秒前
构建智慧数据中台,赋能饮料集团全链路数字化转型新引擎
大数据·人工智能·云计算
大模型实验室Lab4AI11 分钟前
西北工业大学 StereoMV2D 突破 3D 物体检测深度难题,精度与效率兼得
人工智能·计算机视觉·目标跟踪
旷野说19 分钟前
打造 36Gbps 超高速本地机器学习开发环境
人工智能·机器学习
陈天伟教授38 分钟前
人工智能应用-机器视觉:绘画大师 04.基于风格迁移的绘画大师
人工智能·神经网络·数码相机·生成对抗网络·dnn
爱打代码的小林41 分钟前
opencv基础(轮廓检测、绘制与特征)
人工智能·opencv·计算机视觉
AI浩1 小时前
面向无监督多场景行人重识别的图像-文本知识建模
人工智能·目标检测
Takoony1 小时前
深度学习多卡训练必须使用偶数张GPU吗?原理深度解析
人工智能·深度学习
翱翔的苍鹰1 小时前
通俗、生动的方式 来讲解“卷积神经网络(CNN)
人工智能·神经网络·cnn
Irene.ll1 小时前
DAY31 文件的拆分方法和规范
人工智能·机器学习
真上帝的左手1 小时前
26. AI-大语言模型应用发展
人工智能