首頁>技術>

本期我們將一起學習如何使用OpenCV的進行影象拼接。

01. 目錄

python入門步驟1 —影象匯入步驟2-調整影象大小步驟3-融合影象步驟4-匯出結果

02. Python

Python是一種通用的程式語言,在分析資料方面非常流行,它還可以讓幫助我們快速工作並更有效地整合系統。

03. 入門

對於該專案,我們將僅使用OpenCV庫。在處理計算機視覺專案時,OpenCV是必備軟體包。OpenCV(開源計算機視覺庫)是一個開源計算機視覺和機器學習軟體庫OpenCV的構建旨在為計算機視覺應用程式提供通用的基礎結構,並加速在商業產品中使用機器感知。作為BSD許可的產品,OpenCV使企業可以輕鬆地使用和修改程式碼。我們需要安裝此庫,以便可以在程式中使用它。為了使OpenCV正常工作,我們也必須安裝numpy庫。我們可以使用pip python庫管理器將它們安裝在一行中:

pip install numpy opencv-python

安裝完成後,讓我們將它們匯入我們的程式碼編輯器。對於這個專案,我們將使用Jupyter Notebook。OpenCV匯入為cv2,如下所示:

import cv2

現在,我們開始進行兩幅影象的融合吧。下一步將詳細介紹此過程。

04. 步驟1 —影象匯入

我們可以嘗試多種不同影象組合。比如可以將兩張不同的圖片或文字影象與影象組合在一起,或將彩色背景與影象組合在一起。我將把文字影象與漂亮的背景影象混合在一起。讓我們先來看看這兩個影象:

好吧,現在讓我們將它們匯入我們的程式中。我建立了一個資料夾,並將其重新命名為images。它與Jupyter筆記本檔案位於同一資料夾中。

bg = cv2.imread('images/background.jpg', cv2.IMREAD_COLOR) fg = cv2.imread('images/foreground.png', cv2.IMREAD_COLOR)

05. 第2步-調整影象大小

在此步驟中,我們將調整要混合的影象的大小。此步驟也可以稱為預處理影象。我們先調整影象大小,以確保它們的尺寸相同。要使融合能夠正常進行,需要使用相同的大小影象。否則,它將返回錯誤訊息。在調整大小之前,讓我向您展示它們的原始大小:

如您所見,背景影象為853到1280畫素。前景影象為1440至2560畫素。我們將使用OpenCV的調整大小功能調整它們的大小。

dim = (1200, 800) resized_bg = cv2.resize(bg, dim, interpolation = cv2.INTER_AREA) resized_fg = cv2.resize(fg, dim, interpolation = cv2.INTER_AREA)

現在,我們的影象尺寸相同。我們可以進行下一步,開始融合過程。

06. 步驟3 —混合影象

有了OpenCV,我們可以用一行程式碼來完成這項工作。將為我們完成混合的功能稱為addWeighted。它有5個引數,可以列出為:影象源1,src1權重,影象源2,src2權重,伽瑪。每個影象的權重值必須小於1。這是混合方程式:

blend = (image scr1)*(src1 weight) + (image scr2)*(src2 weight) + gamma

這是函式的數學原理。讓我們看看實際情況:

blend = cv2.addWeighted(resized_bg, 0.5, resized_fg, 0.8, 0.0)

我們給前景加了一些權重。這樣,背景將更暗,文字將更亮。到目前為止一切順利,混合完成。現在,我們匯出我們的最終作品。

07. 最後一步-匯出結果

現在,讓我們使用imwrite方法匯出最終作品。這是將影象另存為資料夾中的新影象檔案的行。

cv2.imwrite('blended.png', blend)

該程式最後完成了兩個不同影象的融合。現在,大家應該已經對在實際專案中如何使用OpenCV(開源計算機視覺)庫有了一些瞭解。

8
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • mPaaS框架下如何使用 CrashSDK 對閃退進行分析?