您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關opencv怎么實現圖像加法與圖像融合,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
圖像加法
1.使用Numpy加法
運算方式:結果=圖像1+圖像2
原理:圖像數據格式為unit8
8位二進制表示范圍是0到255。
二進制相加
1.不超過255的,如100+58=158
2.兩數相加可能超過255,超過255的取模運算
如255+58=(255+58)%255=58
2.使用opencv加法
方法:結果=cv2.add(圖像1,圖像2)
飽和運算:
1.如果 兩數相加小于255,100+58=158
2.兩數相加可能超過255,值取255.255+58=255
算法比較
注意參與運算的兩個圖比較大小 格式一樣。程序無法對不同尺寸和格式(如PNG,JPG)進行運算。
import cv2 import numpy as np a=cv2.imread('lenacolor.png',flags=cv2.IMREAD_UNCHANGED)#cv2.IMREAD_UNCHANGED 未改變 b = a result1 = a + b result2 = cv2.add(a, b) cv2.imshow("original", a) cv2.imshow("result1", result1) cv2.imshow("result2", result2) cv2.waitKey(0) cv2.destroyAllWindows()
圖像融合
將2張或者2張以上的圖像信息融合到一張圖片上。
不同于圖像相加,它需進過一系列算法處理。
如將兩張相同但各有不同缺陷的圖,融合成一張完美圖,結合各自優點。
圖像加法:
結果圖像=圖像1+圖像2
圖像融合:
結果圖像=圖像1x系數1+圖像2x系數2+亮度調節量
方法:函數addWeighted
cv2.addWeighted(圖像1,系數1,圖像2,系數2,亮度調節量)
算例
算例中系數為1,1.實際中,我們一般設為不等
import cv2 b=cv2.imread('lena.bmp')#cv2.IMREAD_UNCHANGED 未改變 a=cv2.imread("boat.bmp") result=cv2.addWeighted(a,1,b,1,0) cv2.imshow("boat",a) cv2.imshow("lena",b) cv2.imshow("result",result) cv2.waitKey() cv2.destroyAllWindows()
關于opencv怎么實現圖像加法與圖像融合就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。