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)

三、实验现象

相关推荐
AI视觉网奇9 分钟前
S2CRNet 图像测评笔记 图像融合
笔记·计算机视觉
hsg7710 分钟前
AI绘图:开源Stable Diffusion 3 ComfyUI下载安装方法
人工智能·stable diffusion
思通数科x18 分钟前
AI监控赋能健身馆与游泳馆全方位守护,提升安全效率
人工智能·安全·目标检测·机器学习·计算机视觉·自然语言处理·ocr
宸码38 分钟前
【机器学习】【无监督学习——聚类】从零开始掌握聚类分析:探索数据背后的隐藏模式与应用实例
人工智能·python·学习·算法·机器学习·数据挖掘·聚类
**之火39 分钟前
(六)机器学习 - 正态数据分布
人工智能·机器学习
sirius123451231 小时前
使用open-cv实现图片添加水印
图像处理·opencv·计算机视觉
铭瑾熙1 小时前
机器学习之强化学习
人工智能·机器学习
自信的小螺丝钉1 小时前
【AI知识】有监督学习之回归任务(附线性回归代码及可视化)
人工智能·回归·有监督学习
视觉语言导航1 小时前
西工大经典力作!AerialVLN:空中无人机视觉语言导航数据集
人工智能·具身智能
量子-Alex1 小时前
【反无人机目标检测与跟踪】DUT Anti-UAV数据集介绍
人工智能·目标检测·无人机