def h_im(img):
"""""
步骤:
1,统计像素灰度级分布
2,求出个灰度级的概率
3,将灰度级对应的概率进行累加后乘灰度级范围最大值
4,将原图对应的像素点的灰度级对应的均衡化后的值赋予新图片
"""""
a = [0]*256 #存储图片各像素出现的次数的数组
h = img.shape[0] #图片宽高
w = img.shape[1]
for i in range(w): #循环遍历,图像的行和列
for j in range(h):
pixel = img[i][j] #取像素值
a[int(pixel)] += 1 #对应位置+1操作
plt.figure()
label = [index for index in range(256)]
weight = [we for we in a]
#画未均衡的直方图
plt.subplot(2,2,1)
plt.title("Histogram")
plt.xlabel("pixel")
plt.ylabel("grayscale value")
plt.plot(label, weight)
for l in range(len(a)):
a[l] = a[l]/(w*h) #均衡处理:像素总数除以图片w*h得到概率
if l == 0:
continue
else:
a[l] = a[l] + a[l-1] #从0-255,将对应概率叠加,而后乘以灰度跨度255
直方图均衡(Python方法)
最新推荐文章于 2024-04-08 10:32:38 发布