将图像灰度直方图均衡化的代码
以下是Python代码实现图像灰度直方图均衡化:
import cv2
import numpy as np
# 读取图像
img = cv2.imread('image.jpg', cv2.IMREAD_GRAYSCALE)
# 计算图像直方图
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函数用于读取图像,cv2.IMREAD_GRAYSCALE参数表示以灰度模式读取图像。np.histogram函数用于计算图像直方图,hist表示直方图,bins表示直方图的垂直坐标。hist.cumsum()函数用于计算累积分布函数,cdf_normalized表示归一化的累积分布函数。np.interp函数用于将原图像映射到均衡化后的图像,最终通过cv2.imshow函数显示原图和均衡化后的图像。
原文地址: https://www.cveoy.top/t/topic/bJjG 著作权归作者所有。请勿转载和采集!