我想计算图像的对数对比度。 这是python中的代码
import cv2
import math
import numpy as np
img=cv2.imread("lena.jpg")
width,height=img.shape[:2]
NewImg=np.zeros_like(img)
InputMax=np.amax(img)
InputMin=np.amin(img)
a=(255.0/(InputMax-InputMin))
b=255-(a*InputMax)
for i in range(width):
for j in range(height):
x=img[i,j]
y=np.array(map(math.log10,x))
NewImg[i,j]=(a*y)+b
print NewImg
答案 0 :(得分:0)
删除float()
中的a=(255/float(InputMax-InputMin))
并将其更改为a=(255.0/InputMax-InputMin)
,然后在最后一行中将其更改为y=np.array(map(math.log10,x))
。
这里:
import cv2
import math
import numpy as np
img=cv2.imread("xyz.jpg")
width,height=img.shape[:2]
NewImg=np.zeros_like(img)
InputMax=np.amax(img)
InputMin=np.amin(img)
a=(255.0/(InputMax-InputMin))
b=255-(a*InputMax)
for i in range(width):
for j in range(height):
x=img[j,i]
y=np.array(map(math.log10,x))
NewImg[j,i]=(a*y)+b
print NewImg