用python写了基于分形维数理论的多尺度图像增强代码,输出是乱码,请问是理论理解出问题了还是代码的问题?请大家指点~
以下是python代码
def enhance_image(IR_img):
IR_img = cv.cvtColor(IR_img, cv.COLOR_BGR2GRAY)
h, w = IR_img.shape
U1 = np.zeros([h, w])
B1 = np.zeros([h, w])
for i in range(h):
for j in range(w):
c = i - j
if (c % 2) == 0:
U1[i][j] = np.max(IR_img[i:i+3, j:j+3])
B1[i][j] = np.min(IR_img[i:i+3, j:j+3])
else:
U1[i][j] = IR_img[i][j]
B1[i][j] = IR_img[i][j]
A1 = U1 - B1
A1 = A1 / 2.0
A_1 = np.zeros([h, w])
A2 = np.zeros([h, w])
A3 = np.zeros([h, w])
K2 = np.zeros([h, w])
K3 = np.zeros([h, w])
# print('A1', A1)
for i in range(h):
for j in range(w):
A_1[i][j] = 3.0 * np.log(1 + A1[i][j])
A2[i][j] = (A_1[i][j] + i * j / 2.0) / 2.0
A3[i][j] = (A_1[i][j] + 2.0 * i * j / 2.0) / 3.0
K2[i][j] = np.exp(-np.log(A_1[i][j]))
K3[i][j] = np.exp(((np.log(A3[i][j]) * np.log(2.0)) - (np.log(A2[i][j]) * np.log(3.0))) / (np.log(2.0) - np.log(3.0)))
print('K3', K3)
mean_K23 = (K2 + K3) / 2.0
MFFK2 = K2 - mean_K23
MFFK2 = np.power(MFFK2, 2.0)
MFFK3 = K3 - mean_K23
MFFK3 = np.power(MFFK3, 2.0)
MFFK = MFFK2 + MFFK3
MFFK = MFFK.astype(np.uint8)
# print(MFFK)
cv.imshow('MFFK', MFFK)
return MFFK
以下是乱码图和相关的原理