python使用OpenCV模塊實現(xiàn)圖像的融合示例代碼
可以通過OpenCV函數(shù)cv.add()或簡單地通過numpy操作添加兩個圖像,res = img1 + img2.兩個圖像應(yīng)該具有相同的深度和類型,或者第二個圖像可以是標(biāo)量值.
三種融合
注意融合時,一般來說兩個圖像的尺寸是一樣大小的,如果大小不一樣,需要把大的圖像的某一部分先截出來,與小的圖先融合,再作為整體替換掉原來大圖中摳出的小圖部分。
"""
# @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的灰度圖,利用簡單的閾值分割創(chuàng)建一個掩模
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()
# 實現(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模塊實現(xiàn)圖像的融合示例代碼的文章就介紹到這了,更多相關(guān)OpenCV 圖像融合內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python使用Py2neo創(chuàng)建Neo4j的節(jié)點(diǎn)和關(guān)系
Neo4j是一款開源圖數(shù)據(jù)庫,使用Python語言訪問Neo4j可以使用Py2neo。本文介紹了使用Py2neo訪問Neo4j,批量創(chuàng)建節(jié)點(diǎn)和關(guān)系的方法2021-08-08
Python?PEP8?代碼規(guī)范常見問題及解決方法
最近換成?PyCharm?寫代碼總是會出現(xiàn)波浪號,這才了解到?Python?的?PEP8?代碼規(guī)范,所以將常見的?PEP8?代碼規(guī)范問題和解決方法記錄一下,養(yǎng)成良好的習(xí)慣,編寫規(guī)范的代碼2023-09-09
對Python的Django框架中的項目進(jìn)行單元測試的方法
這篇文章主要介紹了對Python的Django框架中的項目進(jìn)行單元測試的方法,使用Django中的tests.py模塊可以輕松地檢測出一些常見錯誤,需要的朋友可以參考下2016-04-04
python smtplib模塊自動收發(fā)郵件功能(二)
這篇文章主要為大家詳細(xì)介紹了python smtplib模塊自動收發(fā)郵件功能的第二篇,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-05-05
Python進(jìn)行指數(shù)和對數(shù)曲線擬合詳解
曲線擬合是構(gòu)造曲線或數(shù)學(xué)函數(shù)的過程,其具有對一系列數(shù)據(jù)點(diǎn)的最佳擬合,可能受到約束,本文主要介紹了如何使用Python實現(xiàn)指數(shù)和對數(shù)曲線擬合,需要的可以參考下2024-04-04

