opencv颜色识别算法,opencv提取特定颜色区域
特征提取是降维的一部分,在降维过程中,原始数据的初始集合被划分并缩减为更易管理的组。本文主要介绍如何用OpenCV提取特征(颜色、形状)的相关信息,有需要的可以参考一下。
00-1010图像处理1。颜色2。形状摘要
目录
图像处理所做的只是从图像中提取有用的信息,从而减少数据量,但保留描述图像特征的像素。
下面从图像中提取颜色、形状和纹理特征的方法开始
图像处理
我们每处理一个图像项目,图像的色彩空间都会是首先要探索的地方,而RGB色彩空间是最常用的一个。那么接下来,使用OpenCV,我们可以将图像的色彩空间转换成HSV、LAB、灰度、YCrCb、CMYK等。
a. HSV(色相饱和度值)
h:描述主波长,即指定颜色的通道饱和度S:描述颜色的色调/纯度/色调值V:描述颜色导入的强度cv2
从google.colab.patches导入cv2_imshow
image=cv2.imread(image_file)
hsv_image=cv2.cvtColor(image,cv2。COLOR_BGR2HSV)
cv2_imshow
下图为RGB和HSV
b. LAB
l:描述颜色的亮度,与强度互换使用:颜色分量范围,从绿色到品红色B:颜色分量导入cv2从蓝色到黄色。
从google.colab.patches导入cv2_imshow
image=cv2.imread(image_file)
lab_image=cv2.cvtColor(image,cv2。COLOR_BGR2LAB)
cv2_imshow(实验室图像)
下图为RGB和LAB颜色空间可视化
b.YCrCb
Y :伽玛校正后从RGB色彩空间获得的亮度Cr:描述红色分量与亮度Cb之间的距离:描述蓝色(B)分量与亮度导入cv2之间的距离
从google.colab.patches导入cv2_imshow
image=cv2.imread(image_file)
ycrcb_image=cv2.cvtColor(image,cv2。COLOR_BGR2YCrCb)
cv2_imshow(ycrcb_image)
下图为RGB 与 YCrCb 颜色空间
一旦我们确定或探索了足够的图像色彩空间,并确定我们只对单个通道感兴趣,我们就可以使用*cv2.inRange()*来屏蔽不想要的像素。这在HSV色彩空间中尤其实用。
导入cv2
从google.colab.patches导入cv2_imshow
#读取原始图像
image _ spot=cv2 . im read(image _ file)
cv2_imshow(图像_光斑)
#将其转换到HSV色彩空间
HSV _ image _ spot=cv2 . CVT color(image _ spot,cv2。COLOR_BGR2HSV)
cv2_imshow
#设置黑色像素蒙版并执行bitwise_and以仅获得黑色像素
mask=cv2 . in range(HSV _ image _ spot,(0,0,0),(180,255,40))
masked=cv2 . bitwise _ and(hsv_image_spot,HSV _ image _ spot,mask=mask)
cv2_imshow(屏蔽)
RGB vs HSV vs蒙版图像使用cv2.inRange()检索黑点。
1. 颜色
一旦我们完全探索了颜色特征,我们可能想要在某个时候提取图像中的形状。比如我们的任务是找不同类型的杯子,颜色不是特别重要。同样,我们需要做的是将图像转换到其他颜色空间,看看是否有颜色空间会使对象的边缘或形状更加突出。然后,我们可以使用cv2.finContours检索图像中的所有轮廓。具体用法见OpenCV文档。
2. 形状
关于如何用OpenCV提取特征(颜色、形状)的这篇文章到此结束。关于OpenCV特征提取的更多信息,请搜索热门IT软件开发工作室之前的文章或者继续浏览下面的相关文章。希望大家以后多多支持热门IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。