当前位置: 首页 > article >正文

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)

三、实验现象


http://www.kler.cn/a/442872.html

相关文章:

  • yum系统报错:SyntaxError: multiple exception types must be parenthesized
  • HTTPS SSL/TLS 工作流程
  • 互联网全景消息(10)之Kafka深度剖析(中)
  • 如何看待Akamai 退出中国市场进行转型?
  • 深度解析:推荐系统的进化之路与深度学习革命
  • vue3中的v-model如何自定义修饰符
  • 科技的成就(六十六)
  • 快捷工具网(www.onlinetool7.com)提供Android KeyCode对照表,帮助开发者轻松理解按键事件
  • uniapp中的uni-file-picker组件上传多张图片到服务器
  • C++ Qt 模板函数和函数重载
  • 1.Nuxt学习 搭建项目 渲染页面基本操作
  • RabbitMQ的核心组件有哪些?
  • 【操作系统】每日 3 题(七十一)
  • 深度学习物体检测之YOLOV5源码解读
  • 为markdown导出的pdf添加页眉页脚
  • 分享一次接口性能摸底测试过程
  • qt 鼠标点击事件
  • Servlet学习中遇到的一些问题及解决
  • 从零开始学习 sg200x 多核开发之 sophpi 编译生成 fip.bin 流程梳理
  • docker修改容器网络
  • Cobalt Strike 4.8 用户指南-第十四节 Aggressor 脚本
  • 强化学习Q-learning及其在机器人路径规划系统中的应用研究,matlab代码
  • ubuntu禁用内核更新
  • 【Java入门指南 Day15:Java网络编程】