用cv2读取图片转化会二值图和灰度图,显示出来
时间: 2024-09-22 21:05:28 浏览: 48
在Python的OpenCV库(cv2)中,你可以通过几个步骤来读取图像并将其转换为灰度图或二值图:
1. **读取图片**:
使用`cv2.imread()`函数读取图片文件,例如:
```python
import cv2
img = cv2.imread('image.jpg')
```
如果图片是以彩色格式存储,`imread()`会返回一个BGR色彩空间的三维数组。
2. **转化为灰度图**:
对于灰度处理,可以使用`cv2.cvtColor()`函数将图像从BGR转成灰度模式,如:
```python
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
```
`COLOR_BGR2GRAY`是一个常量,表示颜色空间的转换。
3. **转化为二值图**:
转换为二值图通常涉及阈值处理,比如Otsu's thresholding(自适应阈值):
```python
_, binary_img = cv2.threshold(gray_img, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU) # 或者使用其他阈值设置
```
这里`cv2.threshold()`函数将灰度图像分割成两个部分:前景(白色)和背景(黑色),`cv2.THRESH_BINARY_INV`用于反转黑白。
4. **显示图片**:
使用`cv2.imshow()`展示处理后的图像:
```python
cv2.imshow("Original Image", img)
cv2.imshow("Gray Image", gray_img)
cv2.imshow("Binary Image", binary_img)
cv2.waitKey(0) # 等待用户按键,按任意键关闭窗口
cv2.destroyAllWindows()
```
如果你想要了解如何保存这些图像,可以在`imshow`之后添加相应的`cv2.imwrite()`调用。
阅读全文