OpenCV 如何遮罩图像

OpenCV 如何遮罩图像

我们可以通过计算掩罩和图像之间的cv2.bitwise_and()来将掩罩应用于图像。要跟踪颜色,我们在HSV颜色空间中使用cv2.inRange()定义一个掩罩,传递HSV中颜色值的下限和上限。

也可阅读:使用Python和OpenCV对图像进行颜色识别

要跟踪图像的一部分,我们可以使用np.zeros()来定义一个掩码,并使用白色(255)对输入图像中要检查的区域进行切片。按照给定的步骤进行图像遮罩-

  • 第一步是导入所需的库。所需的Python库是OpenCV和NumPy。确保你已经安装了它们。

  • 然后使用cv2.imread()方法读取输入图像。将图像从BGR转换为HSV以在输入图像中跟踪颜色。要跟踪图像的一部分,保持图像在BGR格式。

  • 使用cv2.inRange()定义一个掩码来跟踪图像中的特定颜色。在HSV格式中传递颜色的下限和上限。如果要跟踪输入图像的矩形部分,请使用矩形图像(mask )和cv2.zeros()。将掩码的条目填充为255,以跟踪原始图像中的区域。

  • 使用cv2.bitwise_and()将mask 和输入图像之间的位与操作。

  • 现在显示掩码和遮罩图像。

我们将使用此图像作为以下示例的输入文件

OpenCV 如何遮罩图像

示例

在此Python程序中,我们创建一个颜色掩码来跟踪输入图像中的黄色。在此示例中,我们使用HSV颜色空间获取颜色掩码。

# import required libraries
import cv2
import numpy as np

# read input image
img = cv2.imread('car.jpg')

# Convert BGR to HSV
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)

# define range of blue color in HSV
lower_yellow = np.array([15,50,180])
upper_yellow = np.array([40,255,255])

# Create a mask. Threshold the HSV image to get only yellow colors
mask = cv2.inRange(hsv, lower_yellow, upper_yellow)

# Bitwise-AND mask and original image
result = cv2.bitwise_and(img,img, mask= mask)

# display the mask and masked image
cv2.imshow('Mask',mask)
cv2.waitKey(0)
cv2.imshow('Masked Image',result)
cv2.waitKey(0)
cv2.destroyAllWindows()

输出

当我们运行以上代码时,会打开两个名为 ‘Mask ‘和’Masked Image ‘的窗口。’Mask ‘显示用于跟踪黄色的遮罩。’Masked Image ‘在输入图像中显示跟踪到的黄色。

OpenCV 如何遮罩图像

OpenCV 如何遮罩图像

示例

在这个Python程序中,我们创建一个矩形区域作为遮罩。我们想要跟踪输入图像中的这个矩形部分。

# import required libraries
import cv2
import numpy as np

# Read an input image as a gray image
img = cv2.imread('car.jpg')

# create a mask
mask = np.zeros(img.shape[:2], np.uint8)
mask[100:250, 150:450] = 255

# compute the bitwise AND using the mask
masked_img = cv2.bitwise_and(img,img,mask = mask)

# display the mask, and the output image
cv2.imshow('Mask',mask)
cv2.waitKey(0)
cv2.imshow('Masked Image',masked_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

输出

当我们运行以上代码时,会打开两个名为’遮罩 ‘和’遮罩图像 ‘的窗口。’遮罩 ‘显示遮罩(矩形区域)。’遮罩图像 ‘显示输入图像中的跟踪部分。

OpenCV 如何遮罩图像

OpenCV 如何遮罩图像

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程