【配準】配準效果可視化:用opencv(python)顯示配準後圖像與固定圖像的疊加效果

     說明:代碼中的register是自己寫的配準函數,我是用深度學習做的,代碼很長,不能公開,大家用自己的配準方法就好。

      在進行圖像配準的時候如何評價配準效果是一個很頭疼的問題。對於微小的形變,僅用肉眼觀察配準前後的圖像很難判斷配準效果。一種常見的評價方法是將配準後的圖像與固定圖像重疊在一起,調整各自的透明度,從而判斷兩張圖的對齊情況。就像下面這張圖這樣。左圖是固定圖像與浮動圖像的疊加效果,右圖是固定圖像與配準後圖像的疊加效果。

用python寫的函數如下。

def addimage(img_1,img_2,img_3):
     #將灰度圖轉換爲彩圖  底用藍色,頂用紅色
    img = np.zeros((512,512,3))
    img[:,:,0]=img_1#藍色
    img1=img
    img = np.zeros((512,512,3))
    img[:,:,2]=img_2
    img2=img#紅色的浮動圖像
    #固定和浮動
    overlap1=cv2.addWeighted(img1,0.5,img2,0.5,0)
    #固定和配準後
    img[:,:,2]=img_3
    img3 = img
    overlap2=cv2.addWeighted(img1,0.5,img3,0.5,0)
    #浮動和配準後
    img = np.zeros((512,512,3))
    img[:,:,0]=img_2
    img2=img
    img = np.zeros((512,512,3))
    img[:,:,2]=img_3
    img3=img
    overlap3=cv2.addWeighted(img2,0.5,img3,0.5,0)
    cv2.imwrite('4.jpg',overlap1)
    cv2.imwrite('5.jpg',overlap2)
    cv2.imwrite('6.jpg',overlap3)

函數的調用方式如下:

if __name__ == "__main__":
    img1 = cv2.imread('../data/train/fix_overlap/2_0.jpg',0)
    img2 = cv2.imread('../data/train/move_overlap/2_0.jpg',0)
    img3 = register(img2,img1)[0]
    addimage(img1,img2,img3)

生成的三張圖片如下:分別是固定+浮動,固定+配準後,浮動+配準後

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章