python opencv 如何用mask把彩色图片裁切
时间: 2023-11-12 10:06:52 浏览: 163
python使用opencv对图像mask处理的方法
5星 · 资源好评率100%
使用 OpenCV 可以很容易地通过 `cv2.bitwise_and()` 函数实现彩色图片的遮罩裁剪。
1. 读取彩色图片和 mask
```python
import cv2
# 读取彩色图片
img = cv2.imread('image.jpg')
# 读取 mask,假设 mask 是单通道的灰度图像
mask = cv2.imread('mask.jpg', cv2.IMREAD_GRAYSCALE)
```
2. 将 mask 转换为三通道的遮罩图像
```python
# 将灰度图像转换为三通道的遮罩图像
mask = cv2.cvtColor(mask, cv2.COLOR_GRAY2BGR)
```
3. 将遮罩图像应用到彩色图片上
```python
# 将遮罩图像应用到彩色图片上
output = cv2.bitwise_and(img, mask)
```
完整代码如下:
```python
import cv2
# 读取彩色图片
img = cv2.imread('image.jpg')
# 读取 mask,假设 mask 是单通道的灰度图像
mask = cv2.imread('mask.jpg', cv2.IMREAD_GRAYSCALE)
# 将灰度图像转换为三通道的遮罩图像
mask = cv2.cvtColor(mask, cv2.COLOR_GRAY2BGR)
# 将遮罩图像应用到彩色图片上
output = cv2.bitwise_and(img, mask)
# 显示结果
cv2.imshow('output', output)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
其中 `cv2.imshow()` 函数用于显示结果,`cv2.waitKey()` 函数用于等待用户按下任意键,`cv2.destroyAllWindows()` 函数用于关闭所有显示窗口。
阅读全文