国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

python-opencv第六期:addWeighted函數(shù)詳解

這篇具有很好參考價(jià)值的文章主要介紹了python-opencv第六期:addWeighted函數(shù)詳解。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

概要: 眾嗦粥汁所周知,在如今計(jì)算機(jī)視覺(Computer Version?short for CV)是人工智能與機(jī)器人技術(shù)發(fā)展的一個(gè)重大研究方向,而opencv作為一個(gè)專門為計(jì)算機(jī)視覺編程提供技術(shù)與函數(shù)支持的第三方庫,自然是一個(gè)需要重點(diǎn)研究的內(nèi)容。

? ? ? ? ? ? 本期所要介紹的函數(shù)是opencv庫中的函數(shù)——addWeighted。

? ? ? ? ? ? addWeighted函數(shù)的主要作用是將兩張?jiān)磮D片以一定的權(quán)重進(jìn)行混合,以滿足日常生活中我們對(duì)于圖片混合的需要。就像《超級(jí)戰(zhàn)隊(duì)系列》中蘿卜(robot--即機(jī)器人)的合體一樣,混合之后的圖片將兼具不同圖片的特點(diǎn),從而可以多方面地滿足我們的需求。

python-opencv第六期:addWeighted函數(shù)詳解

? ? ? ? ? ? 從字面上看,“addWeighted”這個(gè)單詞的主體就是兩個(gè)單詞——“add”和“weight”,用中文翻譯一下就是“混合”與“權(quán)重”,加起來就是混合兩張圖片的權(quán)重,合成新圖片的意思;從效果上來看,addWeighted函數(shù)可以使得在圖片處理過程中得到類似于PS(Play StationPhotoShop)中圖層疊加,附加圖層透明化的效果,能夠滿足我們?cè)趫D片處理過程中的通常性需要。

? ? ? ? ? ?本期為了展示addWeighted函數(shù)的圖片混合效果要請(qǐng)出的是DC漫畫中的超人與蝙蝠俠,在電影《蝙蝠俠大戰(zhàn)超人:正義黎明》當(dāng)中這兩位超級(jí)英雄曾經(jīng)大打出手,但作為正義聯(lián)盟中的隊(duì)友,最后還是要互相和解,以應(yīng)對(duì)更大的外部威脅。而我們這期博客的展示部分也正是要通過超人的大“S”標(biāo)志與蝙蝠俠的蝙蝠標(biāo)志的融合來,展示這兩位對(duì)于DC漫畫具有代表性意義的超英的戰(zhàn)斗歷程。

? ? ? ? ? ??話不多說,我是Kamen Black君,馬上開始今天的學(xué)習(xí),我已經(jīng)等不及力。

python-opencv第六期:addWeighted函數(shù)詳解python-opencv第六期:addWeighted函數(shù)詳解

?正文部分:

python-opencv第六期:addWeighted函數(shù)詳解

print("祝大家每天快樂,love and peace!")

①使用準(zhǔn)備:

與前幾期一樣,依舊是調(diào)用我們的工具人老伙伴----opencv,作為我們使用rectangle的大前提。

import cv2

②適用情況:?

addWeighted函數(shù)適用于在圖片處理的過程中,當(dāng)我們需要將兩張不同的圖片合成之時(shí)。要注意的是addWeighted所實(shí)現(xiàn)的圖片合成傾向于將兩張圖片的特征都體現(xiàn)出來,并不是簡單的圖層疊加。而正因如此,可以根據(jù)需要,調(diào)整圖片的權(quán)重,從而突出較為重要的圖片內(nèi)容,并得到令我們,滿意的結(jié)果。

③語法說明:

使用語法:dst = cv2.addWeighted(src1, alpha, src2, beta, gamma,dst,dtype)

參數(shù)說明:首個(gè)dst:通過addWeighted函數(shù)進(jìn)行圖像處理之后得到的目標(biāo)圖像,數(shù)據(jù)類型為(array)數(shù)組類型;

? ? ? ? ? ? ? ? ? src1、src2:使用addWeighted函數(shù)進(jìn)行處理的兩個(gè)源圖像,數(shù)據(jù)類型也是(array)數(shù)組類型;

? ? ? ? ? ? ? ? ? alpha、beta:兩幅源圖像在混合過程中的權(quán)重,前者為src1源圖像的權(quán)重,后者為src2源圖像的權(quán)重,兩者的大小并不限制在1以內(nèi),只要在不出現(xiàn)報(bào)錯(cuò)(可以試試取個(gè)12!)的范圍內(nèi),可以任意取值,數(shù)據(jù)類型為(double)雙精度類型;

? ? ? ? ? ? ? ? ? gamma:在兩個(gè)源圖像混合之后,如果對(duì)圖像的亮度有所要求,則可以通過對(duì)gamma的值進(jìn)行調(diào)整來進(jìn)行對(duì)圖片整體亮度的調(diào)節(jié),如果數(shù)值為正則是提高亮度,如果數(shù)值為負(fù)則是降低亮度,數(shù)據(jù)類型為(double)雙精度類型;

? ? ? ? ? ? ? ? ? 次個(gè)dst:與首個(gè)dst的說明相同,不再贅述,默認(rèn)為None;

? ? ? ? ? ? ? ? ? dtype:目標(biāo)圖像的數(shù)組深度,即單個(gè)像素值的位數(shù),默認(rèn)為None。

補(bǔ)充說明:1、addWeighted函數(shù)的原理可以簡單地用下面的公示來表示:

????????? ? ? ? ? ? ? ? dst = src1 * alpha + src2 * beta + gamma。

? ? ? ? ? ? ? ? ?2、 從參數(shù)名稱我們也可以看出來——alpha、beta、gamma對(duì)應(yīng)于希臘字母中的第一、二、三個(gè)字母阿爾法、貝塔以及伽馬,就像是一家的三兄弟,雖然名稱不同,但是它們所代表的意義是相同的,都是權(quán)重。只不過老大和老二都有了女朋友(對(duì)應(yīng)于src1與src2),屬于動(dòng)態(tài)權(quán)重,都要和對(duì)應(yīng)的目標(biāo)圖像數(shù)組相乘后再加入結(jié)果;而老三是個(gè)光棍,屬于靜態(tài)權(quán)重,直接加入結(jié)果。

? ? ? ? ? ? ? ? ?3、兩個(gè)源圖像的大小與通道數(shù)要相同,不然會(huì)出現(xiàn)報(bào)錯(cuò)。(什么事都要講究個(gè)門當(dāng)戶對(duì)??!

下面另外附上addWeighted函數(shù)相關(guān)說明的原生文檔,以供參考:

def addWeighted(src1: Mat, alpha, src2: Mat, beta, gamma, dts: Mat = ..., dtype=...) 
from __doc__
    """
    'addWeighted(src1, alpha, src2, beta, gamma[, dst[, dtype]]) -> dst  
    . @brief Calculates the weighted sum of two arrays.   

    . The function addWeighted calculates the weighted sum of two arrays as follows:                          
    . \\f[\\texttt{dst} (I)= \\texttt{saturate} ( \\texttt{src1} (I)* \\texttt{alpha} +  \\texttt{src2} (I)* \\texttt{beta} +  \\texttt{gamma} )\\f] 
    . where I is a multi-dimensional index of array elements. In case of multi-channel arrays, each
    . channel is processed independently.   
    . The function can be replaced with a matrix expression:   
    . @code{.cpp}       
    . dst = src1*alpha + src2*beta + gamma;   
    . @endcode   
    . @note Saturation is not applied when the output array has the depth CV_32S. You may even get   
    . result of an incorrect sign in the case of overflow.   
    . @param src1 first input array.   
    . @param alpha weight of the first array elements.  
    . @param src2 second input array of the same size and channel number as src1.               
    . @param beta weight of the second array elements.  
    . @param gamma scalar added to each sum.   
    . @param dst output array that has the same size and number of channels as the input arrays.  
    . @param dtype optional depth of the output array; when both input arrays have the same depth, dtype   
    . can be set to -1, which will be equivalent to src1.depth().   
    . @sa  add, subtract, scaleAdd, Mat::convertTo'
    """
    pass

④實(shí)例操作:

下面通過超人標(biāo)志與蝙蝠俠標(biāo)志的混合來演示一下addWeighted函數(shù)的使用方法(海超人與大洋游俠合為一體超人與蝙蝠俠不打不相識(shí)):

1、首先,超人與蝙蝠俠平分秋色(alpha:0.5,beta:0.5,gamma:0):

import cv2

superman = cv2.imread("f:/superman.jpg")
h,w,c = superman.shape
batman = cv2.imread("f:/batman.jpg")
batman = cv2.resize(batman,(w,h))
batman_superman = cv2.addWeighted(superman,0.5,batman,0.5,gamma=0)
cv2.imshow("batman&superman",batman_superman)
cv2.waitKey(0)
cv2.destroyAllWindows()
cv2.imwrite("f:/batman&superman1.png",batman_superman)

python-opencv第六期:addWeighted函數(shù)詳解

2、其后,超人在戰(zhàn)斗中更勝一籌(alpha:0.8,beta:0.2,gamma:0):

import cv2

superman = cv2.imread("f:/superman.jpg")
h,w,c = superman.shape
batman = cv2.imread("f:/batman.jpg")
batman = cv2.resize(batman,(w,h))
batman_superman = cv2.addWeighted(superman,0.8,batman,0.2,gamma=0)
cv2.imshow("batman&superman",batman_superman)
cv2.waitKey(0)
cv2.destroyAllWindows()
cv2.imwrite("f:/batman&superman2.png",batman_superman)

python-opencv第六期:addWeighted函數(shù)詳解

3、接著,蝙蝠俠扳回一局(alpha:0.2,beta:0.8,gamma:0):

import cv2

superman = cv2.imread("f:/superman.jpg")
h,w,c = superman.shape
batman = cv2.imread("f:/batman.jpg")
batman = cv2.resize(batman,(w,h))
batman_superman = cv2.addWeighted(superman,0.2,batman,0.8,gamma=0)
cv2.imshow("batman&superman",batman_superman)
cv2.waitKey(0)
cv2.destroyAllWindows()
cv2.imwrite("f:/batman&superman3.png",batman_superman)

python-opencv第六期:addWeighted函數(shù)詳解

4、似乎,只能兩敗俱傷,前途一片灰暗(alpha:0.5,beta:0.5,gamma:-150):

import cv2

superman = cv2.imread("f:/superman.jpg")
h,w,c = superman.shape
batman = cv2.imread("f:/batman.jpg")
batman = cv2.resize(batman,(w,h))
batman_superman = cv2.addWeighted(superman,0.5,batman,0.5,gamma=-150)
cv2.imshow("batman&superman",batman_superman)
cv2.waitKey(0)
cv2.destroyAllWindows()
cv2.imwrite("f:/batman&superman4.png",batman_superman)

python-opencv第六期:addWeighted函數(shù)詳解

5、最后,出現(xiàn)更大的外部威脅,兩人和解,前途一片光明(alpha:0.5,beta:0.5,gamma:90)

import cv2

superman = cv2.imread("f:/superman.jpg")
h,w,c = superman.shape
batman = cv2.imread("f:/batman.jpg")
batman = cv2.resize(batman,(w,h))
batman_superman = cv2.addWeighted(superman,0.5,batman,0.5,gamma=90)
cv2.imshow("batman&superman",batman_superman)
cv2.waitKey(0)
cv2.destroyAllWindows()
cv2.imwrite("f:/batman&superman5.png",batman_superman)

python-opencv第六期:addWeighted函數(shù)詳解

最后經(jīng)過激烈的戰(zhàn)斗,超人與蝙蝠俠經(jīng)過激烈的戰(zhàn)斗,發(fā)現(xiàn)世界中黑暗勢力的威脅的嚴(yán)重程度要遠(yuǎn)遠(yuǎn)大于他們兩人之間的矛盾與成見,之后他們加入正義聯(lián)盟,從此過上了幸福的生活從此開始作為戰(zhàn)友共同對(duì)抗對(duì)世界造成威脅的惡勢力。

?結(jié)語:本期中我們學(xué)習(xí)了addWeighted函數(shù),了解到opencv中如何使用addWeighted函數(shù)來進(jìn)行圖像的混合,使得我們可以得到更能夠符合操作需要的圖像,雖然只是簡單的操作,但是對(duì)于我們?cè)趫D像處理學(xué)習(xí)過程中對(duì)于處理原理的理解確實(shí)是饒有好處的。所謂,不積跬步,無以至千里;不積小流,無以成江海。路都是一個(gè)一個(gè)腳印實(shí)實(shí)在在地走出來的,希望看到這里的各位同好都能腳踏實(shí)地,翻過一座又一座人生的大山,想看的那片海就會(huì)離我們?cè)絹碓浇?/p>

好了以上就是所有的內(nèi)容,希望大家多多關(guān)注,點(diǎn)贊,收藏,這對(duì)我有很大的幫助。謝謝大家了!

python-opencv第六期:addWeighted函數(shù)詳解

好了,這里是Kamen Black君。祝國康家安,大家下次再見嘍?。?!溜溜球~~?

python-opencv第六期:addWeighted函數(shù)詳解??

?文章來源地址http://www.zghlxwxcb.cn/news/detail-406783.html

?

?

到了這里,關(guān)于python-opencv第六期:addWeighted函數(shù)詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • python-opencv第四期:threshold函數(shù)詳解

    python-opencv第四期:threshold函數(shù)詳解

    概要: 眾 嗦粥汁 所周知,在如今計(jì)算機(jī)視覺( Computer Version ?short for CV)是人工智能與機(jī)器人技術(shù)發(fā)展的一個(gè)重大研究方向,而 opencv 作為一個(gè)專門為計(jì)算機(jī)視覺編程提供技術(shù)與函數(shù)支持的第三方庫,自然是一個(gè)需要重點(diǎn)研究的內(nèi)容。 ? ? ? ? ? ? 本期所要介紹的函數(shù)是o

    2024年02月05日
    瀏覽(20)
  • python-opencv第五期:rectangle函數(shù)詳解

    python-opencv第五期:rectangle函數(shù)詳解

    概要: 眾 嗦粥汁 所周知,在如今計(jì)算機(jī)視覺( Computer Version ?short for CV)是人工智能與機(jī)器人技術(shù)發(fā)展的一個(gè)重大研究方向,而 opencv 作為一個(gè)專門為計(jì)算機(jī)視覺編程提供技術(shù)與函數(shù)支持的第三方庫,自然是一個(gè)需要重點(diǎn)研究的內(nèi)容。 ? ? ? ? ? ? 本期所要介紹的函數(shù)是o

    2024年02月05日
    瀏覽(27)
  • python-opencv第二期:imwrite函數(shù)詳解

    python-opencv第二期:imwrite函數(shù)詳解

    概要:眾 嗦粥之 所周知,在如今計(jì)算機(jī)視覺( Computer Version ?short for CV)是人工智能與機(jī)器人技術(shù)發(fā)展的一個(gè)重大研究方向,而 opencv 作為一個(gè)專門為計(jì)算機(jī)視覺編程提供技術(shù)與函數(shù)支持的第三方庫,自然是一個(gè)需要重點(diǎn)研究的內(nèi)容。本文就將介紹其中一個(gè)較為基礎(chǔ)的函數(shù)—

    2024年02月02日
    瀏覽(20)
  • 算法第六期——DFS初入門(深度優(yōu)先搜索)(Python)

    算法第六期——DFS初入門(深度優(yōu)先搜索)(Python)

    目錄 ? 一、蠻力的技術(shù):搜索 1.1、【暴力法】 1.2、蠻力的基本方法——掃描 二、搜索的基本方法 2.1、BFS:一群老鼠走迷宮 2.2、DFS:一只老鼠走迷宮? 2.3、BFS和DFS的異同? 三、DFS詳解 3.1、DFS訪問示例 3.2、?DFS基礎(chǔ): 遞歸和記憶化搜索 3.2.1 遞歸——斐波那契數(shù)列 3.2.2改進(jìn)遞歸

    2024年04月13日
    瀏覽(26)
  • python-opencv之形態(tài)學(xué)操作(腐蝕和膨脹)原理詳解

    python-opencv之形態(tài)學(xué)操作(腐蝕和膨脹)原理詳解

    Removing noise. Isolation of individual elements and joining disparate elements in an image. Finding of intensity bumps or holes in an image. 最基本的形態(tài)操作是侵蝕和擴(kuò)張。讓我們更詳細(xì)地了解這些操作。 原理 它會(huì)侵蝕前景物體的邊界,并從圖像中移除小規(guī)模的細(xì)節(jié),但同時(shí)會(huì)減少感興趣區(qū)域的大小。

    2024年02月05日
    瀏覽(23)
  • python-opencv第七期:開運(yùn)算與閉運(yùn)算詳解(上)

    python-opencv第七期:開運(yùn)算與閉運(yùn)算詳解(上)

    目錄 概要: 正文部分: 概念介紹:? 何謂“開”與“閉”: 如何實(shí)現(xiàn)開運(yùn)算與閉運(yùn)算: 應(yīng)用場景: 結(jié)語: 眾 嗦粥汁 所周知,在如今計(jì)算機(jī)視覺( Computer Version ?short for CV)是人工智能與機(jī)器人技術(shù)發(fā)展的一個(gè)重大研究方向,而 opencv 作為一個(gè)專門為機(jī)計(jì)算機(jī)視覺編程提供

    2024年02月04日
    瀏覽(24)
  • 《Python高并發(fā)與高性能編程:原理與實(shí)踐》——小解送書第六期

    《Python高并發(fā)與高性能編程:原理與實(shí)踐》——小解送書第六期

    目錄 書籍介紹 ?抽獎(jiǎng) Python成為時(shí)下技術(shù)革新的弄潮兒,全民Python的發(fā)展趨勢讓人們不再滿足于簡單地運(yùn)行Python程序,逐步探索其更為廣泛的日常應(yīng)用和高性能設(shè)計(jì)。以ChatGPT為代表的大模型產(chǎn)品對(duì)初級(jí)程序開發(fā)人員提出了挑戰(zhàn),要想在開發(fā)領(lǐng)域站穩(wěn)腳跟、有發(fā)展,必須掌握更

    2024年02月14日
    瀏覽(24)
  • python-opencv

    python_opencv安裝使用筆記 鏈接: OpenCV——基于Python開發(fā)的OpenCV安裝教程 鏈接: Python使用pip安裝庫時(shí)WARNING: You are using pip version 21.3.1; however, version 22.3.1 is available.的解決辦法 鏈接: Opencv中的圖像相加,相減,相除,相乘(python實(shí)現(xiàn)) 鏈接: opencv-python識(shí)別魔方特定顏色方塊,并輸

    2024年02月01日
    瀏覽(25)
  • 搜索與圖論第六期 最短路問題

    搜索與圖論第六期 最短路問題

    Dijkstra算法?zhǔn)且环N著名的圖算法,主要用于求解有權(quán)圖中的單源最短路徑問題。它由荷蘭計(jì)算機(jī)科學(xué)家艾茲赫爾·戴克斯特拉(Edsger Wybe Dijkstra)在1956年首次提出。Dijkstra算法的核心思想是通過以下步驟逐步構(gòu)建最短路徑樹: 初始化:創(chuàng)建一個(gè)空白的最短路徑字典,其中每

    2024年02月20日
    瀏覽(20)
  • 【python-opencv】硬幣檢測

    【python-opencv】硬幣檢測

    使用 python3.8.x,opencv 使用圖像處理技術(shù),從照片中識(shí)別硬幣的個(gè)數(shù),并判斷總價(jià)值。 使用顏色特征,識(shí)別出5角硬幣 使用半徑大小,判斷出1角和1元硬幣。 具體操作 將圖片轉(zhuǎn)換為HSV顏色模型 部分代碼 提取輪廓信息 cv2.findContours() 擬合橢圓,提取ROI cv2.fitEllipse() 模板匹配 cv

    2024年02月02日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包