首页 分享 OpenCV中的识别图片颜色并绘制轮廓

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

来源:花匠小妙招 时间:2024-12-14 15:56

最新推荐文章于 2024-12-12 22:15:35 发布

〖是♂我〗 于 2024-12-12 20:45:34 发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

一、实验原理

使用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)

三、实验现象

相关知识

利用OpenCV根据图片识别环境的亮度
深入浅出:利用OpenCV实现手写数字识别之旅
基于STM32的农业病虫害检测检测系统:OpenCV、MQTT、Flask框架、MySQL(代码示例)
基于机器视觉的昆虫种类及计数检测研究
基于机器视觉的害虫种类及计数检测研究
基于Python机器视觉的远程害虫种类识别和数量检测系统 报告+项目源码及数据
python 手写字识别
基于OpenCV的鲜花的图像分类系统详细设计与具体代码实现
opencv
opencv深度学习昆虫识别系统图像识别 python

网址: OpenCV中的识别图片颜色并绘制轮廓 https://www.huajiangbk.com/newsview1094003.html

所属分类:花卉
上一篇: Opencv之识别图片颜色并绘制
下一篇: OpenCV实战项目——多种颜色

推荐分享