颜色分割或颜色过滤在OpenCV中广泛用于识别具有特定颜色的特定对象/区域。使用最广泛的色彩空间是RGB色彩空间, 它称为加性色彩空间
三种颜色的总和就可以赋予图像颜色。要确定特定颜色的区域, 请设置阈值并创建一个遮罩以分离不同的颜色。 HSV颜色空间为此目的更为有用, 因为HSV空间中的颜色更加局限, 因此可以轻松分离。彩色滤镜具有许多应用和用例, 例如在密码学, 红外分析, 易腐食品的食品保存等方面。在这种情况下, 图像处理的概念可用于发现或提取出特定颜色的区域。
对于颜色分割, 我们所需要的只是阈值或一种颜色空间中颜色的上下限范围的知识。它在"色相饱和度值"色彩空间中效果最佳。
在指定要分割的颜色范围之后, 需要相应地创建一个遮罩, 并通过使用它可以分离出特定的关注区域。
下面是代码:
import cv2
import numpy as npcap = cv2.VideoCapture( 0 )while ( 1 ):
_, frame = cap.read()
# It converts the BGR color space of image to HSV color space
hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)# Threshold of blue in HSV space
lower_blue = np.array([ 35 , 140 , 60 ])
upper_blue = np.array([ 255 , 255 , 180 ])# preparing the mask to overlay
mask = cv2.inRange(hsv, lower_blue, upper_blue)# The black region in the mask has the value of 0, # so when multiplied with original image removes all non-blue regions
result = cv2.bitwise_and(frame, frame, mask = mask)cv2.imshow( 'frame' , frame)
cv2.imshow( 'mask' , mask)
cv2.imshow( 'result' , result)cv2.waitKey( 0 )cv2.destroyAllWindows()
cap.release()
原始图片-
文章图片
遮罩图像
文章图片
【如何使用OpenCV过滤颜色(代码示例)】蓝色分段区域-
文章图片
推荐阅读
- 分割字符串的方法,使每个分区以不同的字符开始
- 计算从一个字符串转为另一个字符串的最小编辑次数| DP-5
- Python编程(计算三个数最大值的3中方法)
- 巧妙处理电脑键盘右边的数字键失灵问题
- 注重笔记本保养 经常见故障区分及处理
- 你所不熟悉的显卡各种后缀字母的意义
- 高手详细说明液晶显示器的维护常识
- CPU选购秘籍 简单一招辨别原装与封盒
- 3步骤简单处理开机显示NTLDR is mis的问题