opencv mask边缘裁剪
时间: 2023-09-17 22:15:06 浏览: 149
在 OpenCV 中,可以通过使用掩码(mask)来实现边缘裁剪。具体步骤如下:
1. 读入图像和掩码。掩码是一个与原始图像大小相同的灰度图像,其中非零像素表示需要保留的区域,零像素表示需要裁剪的区域。
```python
import cv2
img = cv2.imread('image.jpg')
mask = cv2.imread('mask.jpg', 0)
```
2. 对掩码进行二值化处理。因为在 OpenCV 中,掩码的像素值只有 0 和 255 两种,而非零像素并不一定是 255,因此需要对掩码进行二值化处理。
```python
_, mask = cv2.threshold(mask, 1, 255, cv2.THRESH_BINARY)
```
3. 使用掩码对图像进行裁剪。将掩码应用到原始图像上,只保留非零像素对应的部分。
```python
img = cv2.bitwise_and(img, img, mask=mask)
```
4. 显示裁剪后的图像。可以使用 `cv2.imshow()` 函数来显示图像。
```python
cv2.imshow('Cropped image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
完整代码如下:
```python
import cv2
img = cv2.imread('image.jpg')
mask = cv2.imread('mask.jpg', 0)
_, mask = cv2.threshold(mask, 1, 255, cv2.THRESH_BINARY)
img = cv2.bitwise_and(img, img, mask=mask)
cv2.imshow('Cropped image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
阅读全文