【发布时间】:2018-05-29 07:38:51
【问题描述】:
我使用了公式: ((L-1)/MN)ni 在哪里 L是灰度总数,MN是图像大小,ni是累积频率
但我总是得到全黑图像。我也尝试过其他图像。
import numpy as np
import cv2
path="C:/Users/Arun Nambiar/Downloads/fingerprint256by256 (1).pgm"
img=cv2.imread(path,0)
#To display image before equalization
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
a=np.zeros((256,),dtype=np.float16)
b=np.zeros((256,),dtype=np.float16)
height,width=img.shape
#finding histogram
for i in range(width):
for j in range(height):
g=img[j,i]
a[g]=a[g]+1
print(a)
#performing histogram equalization
tmp=255/(height*width)
a[0]=tmp*a[0]
b[0]=round(a[0])
for g in range(1,width):
a[g]=(a[g]*tmp)+(a[g-1]*tmp)
b[g]=round(a[g])
print(b)
b=b.astype(np.uint8)
print(b)
for i in range(width):
for j in range(height):
g=img[j,i]
img[j,i]=b[g]
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
【问题讨论】:
标签: python-3.x opencv image-processing histogram