直方图灰度化均衡化python代码
时间: 2023-10-12 21:16:58 浏览: 170
以下是使用Python实现灰度化和直方图均衡化的代码:
灰度化:
```python
import cv2
# 加载图像
img = cv2.imread('image.jpg')
# 将图像转化为灰度图像
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 显示灰度图像
cv2.imshow('Gray Image',gray_img)
cv2.waitKey(0)
```
直方图均衡化:
```python
import cv2
# 加载图像
img = cv2.imread('image.jpg')
# 将图像转化为灰度图像
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 进行直方图均衡化
equ_img = cv2.equalizeHist(gray_img)
# 显示直方图均衡化图像
cv2.imshow('Equalized Image',equ_img)
cv2.waitKey(0)
```
这里以OpenCV库为例,通过`cv2.cvtColor()`函数将图像转化为灰度图像,再使用`cv2.equalizeHist()`函数进行直方图均衡化。最后通过`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 函数释放资源。
需要注意的是,这里使用的是灰度图像,如果要对彩色图像进行直方图均衡化,需要先将其转换为灰度图像。
图像灰度直方图均衡化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()`函数分别显示原图和均衡化后的图像。
阅读全文