python使用OpenCV模塊實(shí)現(xiàn)圖像的融合示例代碼
可以通過(guò)OpenCV函數(shù)cv.add()或簡(jiǎn)單地通過(guò)numpy操作添加兩個(gè)圖像,res = img1 + img2.兩個(gè)圖像應(yīng)該具有相同的深度和類型,或者第二個(gè)圖像可以是標(biāo)量值.
三種融合
注意融合時(shí),一般來(lái)說(shuō)兩個(gè)圖像的尺寸是一樣大小的,如果大小不一樣,需要把大的圖像的某一部分先截出來(lái),與小的圖先融合,再作為整體替換掉原來(lái)大圖中摳出的小圖部分。
""" # @Time : 2020/4/3 # @Author : JMChen """ import cv2 as cv img1 = cv.imread('logo.png') img2 = cv.imread('lena.png') # 在lena.png獲取和logo.png大小相同的ROI rows, cols, channels = img1.shape img_ROI1 = img2[0:rows, 0:cols] img_ROI2 = cv.addWeighted(img1, 0.7, img_ROI1, 0.3, 0) img2[0:rows, 0:cols] = img_ROI2 # 顯示混合后的圖片 cv.imshow('img2', img2) cv.waitKey(0) # 將兩幅圖像(lena.png)+ (logo.png)進(jìn)行融合 img2 = cv.imread('lena.png') # 1,在lena.png獲取和logo.png大小相同的ROI img_ROI1 = img2[0:rows, 0:cols] # 2,基于logo.png的灰度圖,利用簡(jiǎn)單的閾值分割創(chuàng)建一個(gè)掩模 img1_gray = cv.cvtColor(img1, cv.COLOR_BGR2GRAY) ret, mask = cv.threshold(img1_gray, 10, 255, cv.THRESH_BINARY) mask_inv = cv.bitwise_not(mask) # 3,與掩模進(jìn)行按位與操作,去掉logo中非0部分,得到新的圖 new_img2 = cv.bitwise_and(img_ROI1, img_ROI1, mask=mask_inv) # 4,將新圖與logo相加,然后將這一部分替換掉原始圖像的img_ROI1部分 dst = cv.add(img1, new_img2) img2[0:rows, 0:cols] = dst cv.imshow('res', img2) cv.waitKey(0) cv.destroyAllWindows() # 實(shí)現(xiàn)另一種融合 img2 = cv.imread('lena.png') img_ROI1 = img2[0:rows, 0:cols] dst_1 = cv.addWeighted(img_ROI1, 0.55, dst, 0.45, 0) img2[0:rows, 0:cols] = dst_1 cv.imshow('res_2', img2) cv.waitKey(0) cv.destroyAllWindows()
效果如下:
相關(guān)的比例參數(shù)可以自己按需調(diào)
到此這篇關(guān)于python使用OpenCV模塊實(shí)現(xiàn)圖像的融合示例代碼的文章就介紹到這了,更多相關(guān)OpenCV 圖像融合內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
接口自動(dòng)化多層嵌套json數(shù)據(jù)處理代碼實(shí)例
這篇文章主要介紹了接口自動(dòng)化多層嵌套json數(shù)據(jù)處理代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11python3中@dataclass的實(shí)現(xiàn)示例
@dataclass?是 Python 3.7 引入的一個(gè)裝飾器,用于方便地定義符合數(shù)據(jù)類協(xié)議的類,本文主要介紹了python3中@dataclass的實(shí)現(xiàn)示例,感興趣的可以了解一下2024-02-02Python對(duì)小數(shù)進(jìn)行除法運(yùn)算的正確方法示例
這篇文章主要介紹了Python對(duì)小數(shù)進(jìn)行除法運(yùn)算的正確方法示例,正確的方法是需要轉(zhuǎn)換成浮點(diǎn)數(shù),否則永遠(yuǎn)不會(huì)得到正確結(jié)果,需要的朋友可以參考下2014-08-08Python 利用argparse模塊實(shí)現(xiàn)腳本命令行參數(shù)解析
這篇文章主要介紹了Python 利用argparse模塊實(shí)現(xiàn)腳本命令行參數(shù)解析,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12Pytorch GPU內(nèi)存占用很高,但是利用率很低如何解決
這篇文章主要介紹了Pytorch GPU內(nèi)存占用很高,但是利用率很低的原因及解決方法,具有很好的參考價(jià)值,希望對(duì)大家 有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06PyQt5 界面顯示無(wú)響應(yīng)的實(shí)現(xiàn)
這篇文章主要介紹了PyQt5 界面顯示無(wú)響應(yīng)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03python for循環(huán)輸入一個(gè)矩陣的實(shí)例
今天小編就為大家分享一篇python for循環(huán)輸入一個(gè)矩陣的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-11-11