图像概论实验 编写Python实现直方图均衡化和大津阈值法
时间: 2024-10-11 07:06:46 浏览: 42
otsu 大津法 阈值分割算法
5星 · 资源好评率100%
图像概论实验通常涉及到对数字图像的基本处理技术,如直方图均衡化和大津(Otsu's)阈值法,这些都是为了增强图像对比度、提高视觉效果或者用于二值化的预处理步骤。
**直方图均衡化**:
这是一种常用的技术,通过改变像素值的分布,使得图像的整体亮度范围得到扩大,尤其适用于对比度较低的图像。在Python中,可以使用`skimage`库中的`exposure.equalize_hist()`函数来实现:
```python
from skimage import exposure
import cv2
import numpy as np
# 读取图像
img = cv2.imread('image.jpg', 0) # 0表示灰度图像
# 直方图均衡化
equalized_img = exposure.equalize_hist(img)
# 显示原图和均衡化后的图像
cv2.imshow('Original Image', img)
cv2.imshow('Histogram Equalized Image', equalized_img)
cv2.waitKey(0) # 等待用户按键
```
**大津阈值法**:
大津阈值法是一种基于全局阈值选择的方法,它试图找到能够最大化类别间均方差的阈值,用于二值化图像。在`skimage`库中,可以使用`threshold_otsu()`函数实现:
```python
# 使用大津算法计算阈值
thresh, otsu_img = cv2.threshold(img, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
# 显示原图和二值化后的图像
cv2.imshow('Original Image (Grayscale)', img)
cv2.imshow('Otsu Thresholding Result', otsu_img)
cv2.waitKey(0)
```
阅读全文