教你如何用Python检测出图像中的黄色?都在这里!

首先,这里不搞黄色,只搞学习,希望大家好好学习,争取早日变成大佬,升职加薪、当上总经理、出任CEO、迎娶白富美、走上人生巅峰,想想是不是有点小激动。
在这里插入图片描述
等等,别跑偏了,接下来开始学习。

有时我们需要检测出图像中不同颜色的地方,就比如下图中,有很多种颜色,但是我们只想要黄色,那我们应该怎么检测呢
在这里插入图片描述
OpenCV中有一个很好的函数,那就是inRange函数,可以将图像中的不同颜色图像根据指定的颜色检测出来。但是在这之前必须将彩色图像转换为HSV图像。

转换HSV图像的函数也在OpenCV中,那就是cvtColor,可以直接将RGB(真实图像其实是BGR顺序)转换为HSV图像。

下面给出HSV的一张表格,不要急,下面就会知道这个表格的作用啦。
HSV表格

inRange有三个参数,分别是hsv, lower_color, upper_color,其中:
第一个参数:hsv指的是转换为HSV格式的图像
第二个参数:lower_color指的是图像中低于这个lower_color的值,图像值变为0
第三个参数:upper_color指的是图像中高于这个upper_color的值,图像值变为0
注:lower_colorupper_color都是有三个值,分别代表了H、S、V(Hue色度,Saturation饱和度,Value 纯度)三个值的最小最大边界。

接下来进行代码演示:

# 导入必要模块
import cv2
import numpy as np

img = cv2.imread("./hough transform/HoughCircleImg/5.jpg")  # 读取图片路径
img_hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)  # 将BGR图像转换为HSV格式
lower_color = np.array([26, 43, 46])  # 分别对应着HSV中的最小值
upper_color = np.array([34, 255, 255])  # 分别对应着HSV中的最大值
mask = cv2.inRange(img_hsv, lower_color, upper_color)  # inrange函数将根据最小最大HSV值检测出自己想要的颜色部分
cv2.imshow("mask", mask)  # 通过imshow显示
cv2.waitKey(0)  # 等待键盘按下按键退出

上面的lower_colorupper_color分别是上图表格中对应黄色部分的HSV最小最大值。

其中,低于lower_color和高于upper_color的值会变成0,介于lower_colorupper_color之间的值会变成255。

接下来,看最终结果显示图片,可以很清楚的看到只有黄色部分才是255(白色),其他地方全部变成了0(黑色)。
在这里插入图片描述
怎么样?最终是不是检测出来了黄色部分。

你们也可以根据自己喜爱检测出其他颜色部分。

当然,真实场景往往比这更加复杂,这就需要我们根据需要进行微调。

好了,就介绍到这里,欢迎大家进行指正,哪里有问题可以提出。

我是满目星辰wwq,大家可以叫我星辰,一起学习,一起进步,大家都能变成大神!

  • 9
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星辰同学wwq

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值