超詳細注釋之OpenCV構(gòu)建透明的疊加層
為了構(gòu)造透明的疊加層,需要準(zhǔn)備兩個圖像:
(1)原始圖片;
(2)要 “疊加”在第一個圖像上的圖像(包含某種級別的Alpha透明度)。
透明疊加層的用例幾乎無窮無盡,其中倆個是:
- 可以將運行時的重要信息直接覆蓋在輸出圖像上,而不是在單獨的窗口或終端中顯示。使用透明的疊加層可以減少混淆輸出圖像內(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: 疊加層的實際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)用恒定值的加法運算。
- –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: 疊加層的實際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īng)用恒定值的加法運算。
# 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)于超詳細注釋之OpenCV構(gòu)建透明的疊加層的文章就介紹到這了,更多相關(guān)OpenCV構(gòu)建疊加層內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python二進制文件轉(zhuǎn)換為文本文件的代碼實現(xiàn)
在日常編程中,我們經(jīng)常會遇到需要將二進制文件轉(zhuǎn)換為文本文件的情況,在Python中,我們可以利用各種庫和技術(shù)來完成這項任務(wù),本文將介紹如何使用Python將二進制文件轉(zhuǎn)換為文本文件,并提供實用的代碼示例,需要的朋友可以參考下2024-04-04
解決pip install xxx報錯SyntaxError: invalid syntax的問題
今天小編就為大家分享一篇解決pip install xxx報錯SyntaxError: invalid syntax的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-11-11
flask后端request獲取參數(shù)的幾種方式整理
這篇文章主要為大家介紹了flask后端request獲取參數(shù)的幾種方式整理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-06-06
Python用于學(xué)習(xí)重要算法的模塊pygorithm實例淺析
這篇文章主要介紹了Python用于學(xué)習(xí)重要算法的模塊pygorithm,結(jié)合實例形式簡單分析了pygorithm模塊的功能、算法調(diào)用、源碼獲取、時間復(fù)雜度計算等相關(guān)操作技巧,需要的朋友可以參考下2018-08-08

