灰度直方图均衡化python
时间: 2023-06-29 19:20:42 浏览: 137
灰度直方图均衡化是一种用于增强图像对比度的技术,可以使图像的灰度分布更加均匀。在Python中,可以使用OpenCV库来实现灰度直方图均衡化。
下面是一个简单的代码示例,实现了对一张图像进行灰度直方图均衡化:
```python
import cv2
# 读取图像
img = cv2.imread('image.png', cv2.IMREAD_GRAYSCALE)
# 进行直方图均衡化
equ = cv2.equalizeHist(img)
# 显示原始图像和均衡化后的图像
cv2.imshow('Original Image', img)
cv2.imshow('Equalized Image', equ)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在代码中,首先使用`cv2.imread()`函数读取了一张灰度图像。然后,使用`cv2.equalizeHist()`函数对图像进行直方图均衡化,得到了均衡化后的图像。最后,使用`cv2.imshow()`函数显示原始图像和均衡化后的图像,并使用`cv2.waitKey()`和`cv2.destroyAllWindows()`函数等待用户按下键盘,然后关闭窗口。
当然,上述代码只是一个简单的示例,实际应用中可能需要根据图像的特点进行一些参数调整,以达到更好的效果。
相关问题
图像灰度直方图均衡化python
好的,下面是图像灰度直方图均衡化的Python代码示例:
```python
import cv2
import numpy as np
# 读取图片
img = cv2.imread('image.jpg', 0)
# 计算灰度直方图
hist, bins = np.histogram(img.flatten(), 256, [0, 256])
# 计算累积分布函数
cdf = hist.cumsum()
cdf_normalized = cdf * hist.max() / cdf.max()
# 进行直方图均衡化
img_eq = np.interp(img.flatten(), bins[:-1], cdf_normalized).reshape(img.shape)
# 显示原图和均衡化后的图像
cv2.imshow('Original Image', img)
cv2.imshow('Equalized Image', img_eq)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
上述代码中,我们首先使用`cv2.imread()`函数读取一张灰度图像,然后使用`np.histogram()`函数计算图像的灰度直方图。接着,我们计算图像的累积分布函数,并将其归一化。最后,我们使用`np.interp()`函数对原图像进行直方图均衡化,并将处理后的图像保存在`img_eq`中。最后,我们使用`cv2.imshow()`函数分别显示原图和均衡化后的图像。
图像灰度直方图均衡化python代码
图像灰度直方图均衡化可以提高图像的对比度和亮度,可以使用 OpenCV 中的 equalizeHist 函数实现。以下是一个简单的 Python 代码示例:
```python
import cv2
# 读取图像
img = cv2.imread('image.jpg', cv2.IMREAD_GRAYSCALE)
# 直方图均衡化
equalized = cv2.equalizeHist(img)
# 显示原图和均衡化后的图像
cv2.imshow('Original', img)
cv2.imshow('Equalized', equalized)
# 等待按键
cv2.waitKey(0)
# 释放资源
cv2.destroyAllWindows()
```
在代码中,我们首先使用 imread 函数读取一张灰度图像,并将其存储在 img 变量中。然后,我们使用 equalizeHist 函数对图像进行直方图均衡化,并将结果存储在 equalized 变量中。最后,我们使用 imshow 函数显示原图和均衡化后的图像,并等待按键。注意,在显示图像之后,我们需要使用 destroyAllWindows 函数释放资源。
需要注意的是,这里使用的是灰度图像,如果要对彩色图像进行直方图均衡化,需要先将其转换为灰度图像。
阅读全文