opencv python二值图取反
时间: 2024-08-13 17:02:08 浏览: 111
在OpenCV Python中,如果你想要将一个二值图像取反,即把所有的黑色像素变为白色,反之亦然,你可以使用`bitwise_not()`函数或者`cv2.bitwise_not()`函数。这两种方法作用类似,都是对原图像进行位运算操作,将每个像素的值取反。
以下是基本的步骤:
```python
import cv2
import numpy as np
# 加载你的二值图像
binary_image = cv2.imread('your_binary_image.jpg', cv2.IMREAD_GRAYSCALE)
# 使用numpy的bitwise_not()
inverted_image_numpy = np.logical_not(binary_image).astype('uint8')
# 或者使用OpenCV的函数
inverted_image_opencv = cv2.bitwise_not(binary_image)
# 显示原始和取反后的图像
cv2.imshow('Original Image', binary_image)
cv2.imshow('Inverted Image', inverted_image_opencv)
cv2.waitKey(0) # 等待用户按键
cv2.destroyAllWindows() # 关闭所有窗口
```
这里假设`binary_image`是一个灰度图像,如果不是,你需要首先将其转换为灰度。`np.logical_not`会返回一个布尔型矩阵,而`astype('uint8')`则是为了将其转换回 uint8 类型,因为OpenCV通常处理的是8位无符号整数。
阅读全文