opencv 叠加两张图_「干货」教你如何用OpenCV快速寻找图像差异处
如何使用結構相似性指數(SSIM)將兩個圖像與Python進行比較。
使用這種方法,我們能夠輕松確定兩個圖像是否相同或由于輕微的圖像處理,壓縮偽像或有目的的篡改而產生差異。
今天我們將擴展SSIM方法,以便我們可以使用OpenCV和Python可視化圖像之間的差異。具體來說,我們將在兩個不同的輸入圖像中的區域周圍繪制邊界框。
與OpenCV和Python的圖像差異
為了計算兩個圖像之間的差異,我們將利用結構相似性指數,由Wang等人首先介紹。在2004年的論文中,圖像質量評估:從錯誤可見性到結構相似性。此方法已在scikit-image 庫中實現以進行圖像處理。
訣竅是學習如何根據(x,y) -坐標位置精確確定圖像差異的位置。
為此,我們首先需要確保我們的系統具有Python,OpenCV,scikit-image和imutils。
您可以使用我的OpenCV安裝教程學習如何在系統上配置和安裝Python和OpenCV 。
如果您還沒有 scikit - 已安裝/升級映像,請通過以下方式升級:
$ pip install --upgrade scikit-image當你在這里時,繼續安裝/升級 imutils :
$ pip install --upgrade imutils現在我們的系統已經準備好了先決條件,讓我們繼續。
計算圖像差異
你能發現這兩個圖像之間的區別嗎?
圖1:手動檢查兩個輸入圖像(源)之間的差異
如果您花一秒鐘研究這兩張信用卡,您會注意到MasterCard徽標出現在 左側圖像上,但已從右側圖像中刪除 。
您可能已經立即注意到這種差異,或者可能已經花了幾秒鐘。無論哪種方式,這都證明了比較圖像差異的一個重要方面 - 有時圖像差異是微妙的 - 如此微妙以至于肉眼難以立即理解差異(我們將在本博文后面看到這樣一個圖像的例子)。
那么為什么計算圖像差異如此重要呢?
一個例子是 網絡釣魚。攻擊者可以稍微操縱圖像,以欺騙不驗證URL的毫無戒心的用戶,使他們認為他們正在登錄他們的銀行網站 - 后來發現這是一個騙局。
將網頁上的徽標和已知用戶界面(UI)元素與現有數據集進行比較有助于減少網絡釣魚攻擊(非常感謝Chris Cleveland傳遞 PhishZoo:通過查看網絡釣魚網站作為應用計算機視覺預防的示例來檢測網絡釣魚網站網絡釣魚)。
開發網絡釣魚檢測系統顯然比簡單的圖像差異復雜得多,但我們仍然可以應用這些技術來確定是否已經操縱了給定的圖像。
現在,讓我們計算兩個圖像之間的差異,并使用OpenCV,scikit-image和Python并排查看差異。
打開一個新文件并將其命名為 image_diff .py ,并插入以下代碼:
# import the necessary packagesfrom skimage.measure import compare_ssimimport argparseimport imutilsimport cv2 # construct the argument parse and parse the argumentsap = argparse.ArgumentParser()ap.add_argument("-f總結
以上是生活随笔為你收集整理的opencv 叠加两张图_「干货」教你如何用OpenCV快速寻找图像差异处的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: git拉取代码如何解决冲突_开源项目 g
- 下一篇: 罗汉果壳的功效与作用、禁忌和食用方法