import org.
opencv
.core.Core;
import org.
opencv
.core.CvType;
import org.
opencv
.core.Mat;
impor...
首先我们读入一张
图片
,然后我们利用cv2函数的split方法可以成功
提取
每一个
颜色
通道
同时我们还可以把b ,g ,r合并起来再次合并成彩色图像
img2 = cv2.merge(b, g, r)
我们可以将b, g, r分别读取出来
cur_img = img.copy()
cur_img[:, :, 0] = 0
cur_img[:,
img = cv.imread("5.jpg")
img2 = cv.cvtColor(img, cv.COLOR_BGR2HSV) # 转换BGR色彩空间到HSV色彩空间
lower_hsv = np.array([100, 43, 46])
upper_hsv = np.array([124, 255, 255])
mask = cv.inR..
颜色
提取
Opencv
中
,
颜色
提取
的一种方式是将BGR空间下的图像转换为HSV空间下,然后利用
opencv
自带函数inRange,设置需
提取
的HSV各分量上下限,从而进行
提取
。
关于
颜色
空间
关于
颜色
空间转换请参见:https://blog.csdn.net/dieju8330/article/details/82465616
https://blog.csdn.net/Cold...
OpenCV
学习
笔记(
提取
图像
中
特点
颜色
)
我们经常需要
提取
图像
中
某种特殊
颜色
的区域,比如黄色或者
红色
区域。如果只是
提取
特点的
颜色
,那么很简单,直接做
颜色
比较就可以了。如果要选取某个
颜色
范围,这个工作在 RGB 空间
中
就不是那么方便了。这时我们通常会选取 HSV 或类似的
颜色
空间。
关于 HSV 空间的介绍网上有很多,这里就不详细写了。但是可以认为 Hue 表示
颜色
,Saturation 表示
颜色
的饱和度,Brightness 是亮度。选取
颜色
范围时我们通常用 Hue 和 Sat 两个维度。下面是在网上
BGR和HSV的转换使用 cv2.COLOR_BGR2HSV
img = cv2.imread("3.png")
hsv=cv2.cvtColor(img,cv2.COLOR_BGR2HSV)#HSV空间
(HSV空间
中
,H表示色彩/色度,取值范围 [0,179],S表示饱和度,取值范围 [0,255],V表示亮度,取值范围 [0,255]。)
如果你使用的是C++,有些代码可能需要自行变更!
初学
opencv
的阶段,难免是从枯燥地啃文档和记函数开始。逐一而草率地“过”一遍函数用法,对于初学者而言,其实很难起到
学习
的进步。只有在具体的实例
中
,才能更好地理解函数用法和搭配 的 妙用。
笔者在视觉库cvzone和halcon的启发下,总结了些
opencv
实现的
颜色
和轮廓的
提取
&筛选方法,能够方便地应用在不同的项目之上。
如果读友是小白,在这里也推荐个B站上的油管搬运教程:
opencv
超实
第一个参数:hsv指的是原图
第二个参数:lowerb指的是图像
中
低于这个lowerb的值,图像值变为0
第三个参数:upperb指的是图像
中
高于这个upperb的值,图像值变为0
而在lower_red~upper_red之间的值变成255
来自https://blog.csdn.net/qq_42444944/article/detai