圖像的融合本質上也是圖像間的加法操作,只是與圖像疊加不同的是,圖像疊加是兩個圖像之間的簡單直接相加,而圖像融合則是按權重分配進行相加。我們假設待融合的兩個圖像為image1和image2,其中image1權重為a,image2權重為b,那么融合后的圖像dst=image1*a+image2*b。
在OpenCV中,我們使用addWeighted(src1,alpha,src2,beta,gamma,dst=None,dtype=None)函數實現圖像的融合
import cv2 img = cv2.imread("500x400.jpg",1) img1 = cv2.imread("tuzi500x400.jpg",1) cv2.imshow('img',img) cv2.imshow('img1',img1) dst=cv2.addWeighted(img,0.5, img1,0.5,0) #圖像融合 ''' 參數1 參數3 待疊加的兩個圖像,兩個圖像的大小,通道數必須一致 參數2 參數4 分別是兩個圖像的權重 參數5 gamma:必選參數。兩個圖像融合后添加的數值。總和等於255以上就是純白色了。注意不要設置太大,不然圖片會一片白。 ''' cv2.imshow('dst',dst) cv2.waitKey()
雖然權重的設置並沒有限制,但我們在使用時一般將兩個權重和設為1。另外,當兩個權重都設置為1時,其實就可以看成是圖像的疊加。
效果圖:
需要注意的是,融合后的圖像我們可以設置比原圖像小,但絕不能超過原圖像的寬高。