圖像加法
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)進行運算。
1
2
3
4
5
6
7
8
9
10
11
|
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.實際中,我們一般設為不等
1
2
3
4
5
6
7
8
9
|
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 圖像加法與圖像融合的實現代碼的文章就介紹到這了,更多相關opencv 圖像加法與圖像融合內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!
原文鏈接:https://blog.csdn.net/kobeyu652453/article/details/107123763