opencv掩码操作python
时间: 2023-10-09 09:06:35 浏览: 111
在OpenCV中,掩码操作是通过使用按位逻辑运算来实现的。掩码可以用于保留图像的指定部分或者对图像进行遮罩。以下是一些使用掩码操作的示例代码:
示例1:
```python
import cv2
import numpy as np
# 读取图像
a = cv2.imread("girl.png", 1)
# 创建一个与图像大小相同的掩码
w, h, c = a.shape
mask = np.zeros((w, h), dtype=np.uint8)
# 设置掩码的感兴趣区域
mask = 255
mask = 255
# 使用按位与函数进行掩码操作
c = cv2.bitwise_and(a, a, mask=mask)
# 显示图像和掩码
cv2.imshow("a", a)
cv2.imshow("mask", mask)
cv2.imshow("c", c)
cv2.waitKey()
cv2.destroyAllWindows()
```
示例2:
```python
import cv2
import numpy as np
# 读取图像
dog = cv2.imread('dog.jpg')
# 创建一个与图像大小相同的掩码
w, h, c = dog.shape
mask = np.zeros((w, h), dtype=np.uint8)
# 设置掩码的感兴趣区域
mask = 255
# 使用按位与函数进行掩码操作
dog2 = cv2.bitwise_and(dog, dog, mask=mask)
# 显示图像和掩码
cv2.imshow('dog', dog)
cv2.imshow('mask', mask)
cv2.imshow('dog2', dog2)
cv2.waitKey()
cv2.destroyAllWindows()
```
掩码操作可以应用于不仅仅是图像的保留指定部分。例如,可以使用掩码操作对两个图像进行按位加法,并根据掩码来控制哪些区域进行加法运算。以下是一个示例代码:
```python
import cv2
import numpy as np
# 创建两个图像和一个掩码
img1 = np.ones((4, 4), dtype=np.uint8) * 3
img2 = np.ones((4, 4), dtype=np.uint8) * 5
mask = np.zeros((4, 4), dtype=np.uint8)
mask = 1
# 使用掩码进行按位加法运算
img3 = cv2.add(img1, img2, mask=mask)
# 打印结果
print("img1=\n", img1)
print("img2=\n", img2)
print("mask=\n", mask)
print("img3=\n", img3)
```
希望这些示例代码可以帮助您理解OpenCV中的掩码操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
阅读全文