大津法处理图片基于cv2用plt.show显示出来
时间: 2024-10-13 07:08:45 浏览: 27
opencv-基于c++实现的opencv图像处理算法之图像分割算法大津法.zip
大津法是一种二值化图像处理技术,常用于将灰度图像转换成黑白图像,以便于后续的边缘检测、物体分割等操作。在Python的OpenCV库(cv2)中,你可以使用`threshold()`函数结合`THRESH_BINARY_INV`模式以及`otsu()`函数来应用大津阈值法。
首先,你需要导入必要的库:
```python
import cv2
import matplotlib.pyplot as plt
```
然后,对图像进行读取并进行处理:
```python
# 读取图片
img = cv2.imread('your_image_path', cv2.IMREAD_GRAYSCALE)
# 应用大津法
threshold_value, binary_img = cv2.threshold(img, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)
# 显示原图和处理后的结果
plt.figure(figsize=(8, 4))
plt.subplot(121), plt.imshow(cv2.cvtColor(img, cv2.COLOR_GRAY2BGR), cmap='gray')
plt.title('Original Image'), plt.xticks([]), plt.yticks([])
plt.subplot(122), plt.imshow(binary_img, cmap='gray')
plt.title('Otsu Binarized Image'), plt.xticks([]), plt.yticks([])
plt.show()
```
在这个例子中,`otsu()`函数自动计算了最佳阈值,`cv2.threshold()`函数则根据这个阈值将图像分为背景和前景。最后,`plt.imshow()`函数用来展示原始图像和处理后的二值图像。
阅读全文