python在不调用库函数的条件下实现灰度图均衡化
时间: 2023-05-27 14:03:22 浏览: 109
以下是Python代码实现灰度图均衡化:
```
import numpy as np
import cv2
# 读取灰度图像
img = cv2.imread('image.jpg', 0)
# 获取图像宽度与高度
h, w = img.shape
# 统计图像直方图
hist = np.zeros(256)
for i in range(h):
for j in range(w):
hist[img[i][j]] += 1
# 计算累积分布函数
cdf = np.zeros(256)
sum_hist = np.sum(hist)
for k in range(256):
if k == 0:
cdf[k] = hist[k] / sum_hist
else:
cdf[k] = cdf[k-1] + hist[k] / sum_hist
# 映射原图像到均衡化后的图像
equalized_img = np.zeros((h, w))
for i in range(h):
for j in range(w):
equalized_img[i][j] = np.round(255 * cdf[img[i][j]])
# 显示原图和均衡化后的图像
cv2.imshow('Original Image', img)
cv2.imshow('Equalized Image', equalized_img)
cv2.waitKey(0)
```
首先读取灰度图像,然后统计图像直方图。接着计算累积分布函数,并根据累积分布函数将原图像映射到均衡化后的图像。最后使用`cv2.imshow()`展示原图和均衡化后的图像。
阅读全文