网站数据库备份怎么做,网站建设方案ppt 枫子科技,大数据培训费用多少钱,python 做的网站有哪些OpenCV颜色检测 前言策略分析根据颜色检测目标对象相关链接 前言
绿幕技术是一种经典的视频编辑技术#xff0c;可以用于将人物置于不同的背景中。例如在电影制作中#xff0c;技术的关键在于演员不能身着特定颜色的衣服(比如绿色)#xff0c;站在只有绿色的背景前。然后可以用于将人物置于不同的背景中。例如在电影制作中技术的关键在于演员不能身着特定颜色的衣服(比如绿色)站在只有绿色的背景前。然后通过识别绿色像素确定背景并替换这些像素上的内容。
策略分析
在本节中我们将了解如何利用 cv2.inRange 和 cv2.bitwise_and 方法检测给定图像中的绿色像素模型策略如下
将图像从 RGB 转换为 HSV 空间指定 HSV 空间中对应绿色的上下限识别绿色像素生成掩码 mask在原始图像和掩码图像之间执行按位与 (bitwise_and)运算
根据颜色检测目标对象
(1) 导入所需库并加载图像
import cv2, numpy as np
import matplotlib.pyplot as pltimg cv2.imread(5.jpeg, 1)
plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
plt.show()(2) 将图像转换到 HSV (Hue-Saturation-Value) 空间从 RGB 转换为 HSV 空间将亮度与颜色分离以便可以轻松提取每个像素的颜色信息
hsv cv2.cvtColor(img, cv2.COLOR_RGB2HSV)(3) 定义 HSV 空间中绿色的上下阈值
lower_green np.array([45,100,100])
upper_green np.array([80,255,255])(4) 生成掩码仅激活落在定义的上下阈值内的像素。cv2.inRange 是一种比较操作用于检查像素值是否在最小值和最大值之间
mask cv2.inRange(hsv, lower_green, upper_green)(5) 在原始图像和掩码之间执行 cv2.bitwise_and 操作以获取结果图像
res cv2.bitwise_and(img, img, maskmask)plt.subplot(131)
plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
plt.title(Original image)
plt.subplot(132)
plt.imshow(mask, cmapgray)
plt.title(Mask on image)
plt.subplot(133)
plt.imshow(cv2.cvtColor(res, cv2.COLOR_BGR2RGB))
plt.title(Resulting image)
plt.show()从上图中可以看出算法忽略了图像中的其余内容只关注特定的颜色使用此算法可以使用 cv2.bitwise_not 操作生成一个非绿色的前景蒙版并执行绿幕技术。 本节介绍了如何识别图像中的颜色空间如果想将另一张图像叠加到识别的绿幕上我们会选择另一幅图像中选择与原始图像中的绿色像素相对应的像素。
相关链接
OpenCV简介与图像处理基础 OpenCV中的色彩空间和色彩映射 语义分割详解 图像分割详解