项目需要做两张图像比较的差,感觉Python用起来很方便,手头正好有OpenCV。红绿代表插值正负,为了更好的可视化,差值均放大10倍显示。
import cv2
def clmap(v, k, upBound): #mul and clamp
val = v * k
if val > upBound:
return upBound
else:
return val
inImage_1 = 'B_Tri.bmp' #
inImage_2 = 'B_RT.bmp' #
dif_img = 'dif_' + inImage_1
img_1 = cv2.imread(inImage_1) # read as color image
img_2 = cv2.imread(inImage_2)
dif = img_1.copy()
show_dif = dif.copy() # dif image for show only
width = img_1.shape[0] #get width
height = img_1.shape[1] #get height
for i in range(width):
for j in range(height):
#dif[i, j] = [128,0,0] # b g r
#print img_1[i,j]-img_2[i,j]
diff = int(img_1[i,j][0])-int(img_2[i,j][0])
if diff < 0:
show_dif[i,j] = [0,clmap(abs(diff), 10, 255), 0]