识别红色区域(python+opencv)

这篇具有很好参考价值的文章主要介绍了识别红色区域(python+opencv)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

版本:

Python:3.7

OpenCV: 4.5.5

步骤:

1、将图片转到HSV色彩空间;

2、设定H、S、V三值的范围;

        参考链接:OpenCV中HSV颜色模型及颜色分量范围 - wangyblzu - 博客园

        注:红色的H有俩个范围(0-10和156-180)

3、使用OpenCV中inRange()函数将输入的HSV图筛选出符合上述H、S、V的二值图像;

4、使用两个范围会得到两个二值图像(类似于互为补集的情况),将两个二值图像进行相加操作,会得到较完整的红色区域;

注:(1)H的取值范围按链接中推荐的即可;

(2)S的取值范围如按链接中推荐的范围会将肤色识别为红色,所以需要将下限值调高一些(例如下限值在100~180之间);

        (3)V的取值范围按链接中推荐的范围即可,因为当有东西遮在上面而处于阴影中时,低下限值的作用就很明显。

测试源码:

import cv2
import numpy as np


if __name__ == "__main__":
    img = cv2.imread('Picture12.jpg')
    # 在彩色图像的情况下,解码图像将以b g r顺序存储通道。
    grid_RGB = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

    # 从RGB色彩空间转换到HSV色彩空间
    grid_HSV = cv2.cvtColor(grid_RGB, cv2.COLOR_RGB2HSV)

    # H、S、V范围一:
    lower1 = np.array([0,43,46])
    upper1 = np.array([10,255,255])
    mask1 = cv2.inRange(grid_HSV, lower1, upper1)       # mask1 为二值图像
    res1 = cv2.bitwise_and(grid_RGB, grid_RGB, mask=mask1)

    # H、S、V范围二:
    lower2 = np.array([156,43,46])
    upper2 = np.array([180,255,255])
    mask2 = cv2.inRange(grid_HSV, lower2, upper2)
    res2 = cv2.bitwise_and(grid_RGB,grid_RGB, mask=mask2)

    # 将两个二值图像结果 相加
    mask3 = mask1 + mask2
    
    # 结果显示
    cv2.imshow("mask3", mask3)
    cv2.imshow("img",img)
    cv2.imshow("Mask1",mask1)
    cv2.imshow("res1",res1)
    cv2.imshow("Mask2",mask2)
    cv2.imshow("res2",res2)
    cv2.imshow("grid_RGB", grid_RGB[:,:,::-1])           # imshow()函数传入的变量也要为b g r通道顺序
    cv2.waitKey(0)
    cv2.destroyAllWindows()

测试图片:

识别红色区域(python+opencv)

结果图片:显示mask3

识别红色区域(python+opencv)文章来源地址https://www.toymoban.com/news/detail-452110.html

到了这里,关于识别红色区域(python+opencv)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python opencv 判断点是否在区域内——cv2.pointPolygonTest()

    👨‍💻 个人简介: 深度学习图像领域工作者 🎉 总结链接:              链接中主要是个人工作的总结,每个链接都是一些常用demo,代码直接复制运行即可。包括:                     📌 1.工作中常用深度学习脚本                     📌 2.to

    2024年02月06日
    浏览(68)
  • Python-opencv实现目标检测定位:判断固定颜色物体是否在规定区域内

    主要实现实时检测视频或者摄像头中出现的固定颜色(本例中使用绿色)是否在规定的区域范围内,并将结果反馈到原视频上。 实现的效果如下图所示: 1、当绿色物体出现在屏幕中的黑框中时,在视频左上角反馈一个“True”的信息。 2、当绿色物体出现在屏幕中但没有完全

    2024年01月17日
    浏览(47)
  • 人脸识别(python+opencv)

    这里我使用的是pycharm(Python集成开发环境)2023.1.3版与opencv pycharm下载网址:PyCharm:JetBrains为专业开发者提供的Python IDE  这里下载免费版的。 opencv下载网址:OpenCV - Open Computer Vision Library  点击Libray--Releases-- 4.5.2版本        如图先建立项目(如不懂如何操作的可以看一下

    2024年01月22日
    浏览(36)
  • Python opencv进行矩形识别

    图像识别中,圆形和矩形识别是最常用的两种,上一篇讲解了圆形识别,本例讲解矩形识别,最后的结果是可以识别出圆心,4个顶点,如下图: 左边是原始图像,右边是识别结果,在我i5 10400的CPU上,执行时间不到8ms。 识别出结果后,计算任意3个顶点的彼此距离,共3个数据

    2024年02月07日
    浏览(56)
  • python OpenCV 实现文字识别

    在 Python 中使用 OpenCV 进行文字识别需要使用 OCR(Optical Character Recognition,光学字符识别)技术。 有许多方法可以使用 OpenCV 实现 OCR,其中一种方法是使用 tesseract 库。tesseract 是一个开源的 OCR 引擎,可以在命令行中使用,也可以使用它的 Python 绑定。 要使用 tesseract 进行 OCR,首

    2024年02月12日
    浏览(34)
  • 【Python】【OpenCV】OCR识别(三)——字符识别

    通过上一篇博客,我们成功将有角度的图片进行“摆正”,接下来我们来提取图片中的文字。 我们使用Tesseract来处理图片并提取文字,相关下载安装请参考:Python下Tesseract Ocr引擎及安装介绍 - 黯然销魂掌2015 - 博客园 (cnblogs.com) 同时我们需要下载第三方Lib——pytesseract,使用

    2024年02月02日
    浏览(47)
  • python毕设选题 - 图像识别-人脸识别与疲劳检测 - python opencv

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年01月16日
    浏览(66)
  • opencv深度学习昆虫识别系统图像识别 python

    文章目录 0 前言+ 1 课题背景+ 2 具体实现+ 3 数据收集和处理+ 3 卷积神经网络+ 2.1卷积层+ 2.2 池化层+ 2.3 激活函数:+ 2.4 全连接层+ 2.5 使用tensorflow中keras模块实现卷积神经网络 4 MobileNetV2网络+ 5 损失函数softmax 交叉熵+ 5.1 softmax函数+ 5.2 交叉熵损失函数 6 优化器SGD+ 7 学习率衰减策

    2024年02月02日
    浏览(60)
  • 车牌识别 opencv python(简单版)

    实验目标 使用形态学处理,识别图片中车牌的位置,并识别每个字符的位置 实验原理 1.车牌识别: (1)车牌的背景色是 蓝色 ,所以先提取图中蓝色的部分,转化为二值图像(蓝色部分为1,其余为0)。 (2)再检测 边缘 ,标出边缘的外接矩形,根据此矩形的 长宽比 和面积,就

    2024年02月06日
    浏览(50)
  • opencv数字识别(python/c++)

    大体思想就是准备好一个数字模板,查找到每个数字的轮廓后通过每个轮廓x坐标值来确保模板轮廓与数字相对应,测试图片同理,循环匹配来获得识别结果 因为模板与测试图片都是白底黑字只包含数字,所以没有过多图像处理,如果测试图片较复杂,需考虑先将待识别区域

    2024年01月22日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包