超詳細(xì)注釋之OpenCV構(gòu)建透明的疊加層
為了構(gòu)造透明的疊加層,需要準(zhǔn)備兩個圖像:
(1)原始圖片;
(2)要 “疊加”在第一個圖像上的圖像(包含某種級別的Alpha透明度)。
透明疊加層的用例幾乎無窮無盡,其中倆個是:
- 可以將運(yùn)行時的重要信息直接覆蓋在輸出圖像上,而不是在單獨(dú)的窗口或終端中顯示。使用透明的疊加層可以減少混淆輸出圖像內(nèi)容的需要!
- 使用Alpha透明度,將兩個圖像“融合”在一起。
使用cv2.addWeighted應(yīng)用透明疊加層功能
cv2.addWeighted(overlay, alpha, output, 1 - alpha, 0, output)
- –overlay: 我們要應(yīng)用的疊加層圖像
- –cv2.addWeighted(overlay, alpha, output, 1 - alpha, 0, output)
- –alpha: 疊加層的實(shí)際Alpha透明度,alpha越接近1,圖像越不透明;alpha越接近0,疊加層顯示得越透明;
- –output: 原始圖像
- –beta: Beta定義為1-alpha 。我們需要定義alpha + beta = 1.0
- gamma: 伽瑪值-加到加權(quán)和的標(biāo)量。可以將gamma視為應(yīng)用加權(quán)加法后添加到輸出圖像的常數(shù)。將其設(shè)置為零,表示不需要應(yīng)用恒定值的加法運(yùn)算。
- –output: 最終的結(jié)果,輸出圖像
效果圖:
# USAGE # python overlay.py # 導(dǎo)入必要的包 from __future__ import print_function import numpy as np import cv2 import imutils # 加載圖像 image = cv2.imread("../image/flower4.jpg") image = imutils.resize(image, width=600) cv2.imshow("origin", image) cv2.waitKey(0) # 循環(huán)遍歷 [0,1.0] 的透明度 for alpha in np.arange(0, 1.1, 0.1)[::-1]: # 創(chuàng)建倆個原始圖的拷貝 # 一個用于構(gòu)建疊加層 一個用于輸出圖像 overlay = image.copy() output = image.copy() # 在左上角 添加文本: PyimageSerach:alpha # 在右下角畫一個矩形的紅色框 cv2.rectangle(overlay, (150, 210), (500, 630), (0, 0, 255), -1) cv2.putText(overlay, "PyImageSearch: alpha={:.2f}".format(alpha), (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 1.0, (0, 0, 255), 3) # 使用cv2.addWeighted應(yīng)用透明疊加層功能 # overlay: 我們要應(yīng)用的疊加層圖像 # alpha: 疊加層的實(shí)際Alpha透明度,alpha越接近1,圖像越不透明;alpha越接近0,疊加層顯示得越透明; # output: 原始圖像 # beta: 我們提供beta值作為第四個參數(shù)。 Beta定義為1-alpha 。我們需要定義alpha和beta,以便alpha + beta = 1.0 # gamma: 伽瑪值-加到加權(quán)和的標(biāo)量。您可以將gamma視為應(yīng)用加權(quán)加法后添加到輸出圖像的常數(shù)。在這種情況下,我們將其設(shè)置為零,因?yàn)槲覀儾恍枰獞?yīng)用恒定值的加法運(yùn)算。 # output: 輸出圖像 cv2.addWeighted(overlay, alpha, output, 1 - alpha, 0, output) # 展示輸出圖像,alpha,beta print("alpha={:.2f}, beta={:.2f}".format(alpha, 1 - alpha)) cv2.imshow("Output", output) cv2.waitKey(0) cv2.destroyAllWindows()
參考:
https://www.pyimagesearch.com/2016/03/07/transparent-overlays-with-opencv/
到此這篇關(guān)于超詳細(xì)注釋之OpenCV構(gòu)建透明的疊加層的文章就介紹到這了,更多相關(guān)OpenCV構(gòu)建疊加層內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用Python設(shè)置,更新和獲取Excel單元格的值
Excel工作簿作為一款廣泛使用的數(shù)據(jù)管理工具,與Python相結(jié)合,可以使得自動化處理大量數(shù)據(jù)成為可能,本文將演示如何使用Python設(shè)置、更新以及獲取Excel文件中單元格的值,希望對大家有所幫助2024-10-10Python連接PostgreSQL數(shù)據(jù)庫的方法
大家應(yīng)該都有所了解,python可以操作多種數(shù)據(jù)庫,諸如SQLite、MySql、PostgreSQL等,這里不對所有的數(shù)據(jù)庫操作方法進(jìn)行贅述,只針對目前項(xiàng)目中用到的PostgreSQL做一下簡單介紹,主要是Python連接PostgreSQL數(shù)據(jù)庫的方法。有需要的朋友們可以參考借鑒,下面來一起看看吧。2016-11-11Python爬取微信讀書實(shí)現(xiàn)讀書免費(fèi)自由
主要跟大家介紹一下,我是如何用Python爬取小說,再導(dǎo)入微信讀書的。成功實(shí)現(xiàn)在微信讀書中各種“白票”付費(fèi)小說,有需要的朋友可以借鑒參考下2021-09-09python 讀入多行數(shù)據(jù)的實(shí)例
下面小編就為大家分享一篇python 讀入多行數(shù)據(jù)的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04Python post請求實(shí)現(xiàn)代碼實(shí)例
這篇文章主要介紹了Python post請求實(shí)現(xiàn)代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02Python 中Django驗(yàn)證碼功能的實(shí)現(xiàn)代碼
驗(yàn)證碼是一種區(qū)分用戶是計(jì)算機(jī)還是人的公共全自動程序,很多用戶登錄和注冊系統(tǒng)都提供了圖形驗(yàn)證碼功能。這篇文章主要介紹了Python 中Django驗(yàn)證碼功能的實(shí)現(xiàn)代碼,需要的朋友可以參考下2019-06-06