<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          獨家|OpenCV 1.3 矩陣的掩膜操作(附鏈接)

          共 2236字,需瀏覽 5分鐘

           ·

          2021-07-30 23:36

          翻譯:陳之炎

          校對:王可汗、林夕


          本文約1600字,建議閱讀5分鐘

          本文為大家介紹了 OpenCV 矩陣的官方教程。


          矩陣的掩膜操作(mask)并不難。主要思路為:根據(jù)掩膜矩陣(也稱為內(nèi)核kernel)重新計算圖像中每個像素的值。利用掩膜矩陣調(diào)整相鄰像素對當(dāng)前像素值的影響。從數(shù)學(xué)的角度來看,即是利用特定的權(quán)重值,對像素做一個加權(quán)平均。

          測試案例


          來看一下如何增強(qiáng)圖像對比度的示例,按照以下公式重新計算圖像各個像素:
           


          第一種是利用公式做計算,而第二種是第一種使用mask來計算的簡化版本。需要計算的像素對準(zhǔn)掩膜矩陣的中心,將像素值和掩膜矩陣的值相加后求和。對于較大的圖像來說,操作也是相同,后者的表述更容易被理解。


          代碼


          可以到這里下載源代碼,或者到以下目錄中查看OpenCV的源代碼示例庫。


          基本方法


          接下來看下,如何通過兩種方法來實現(xiàn)上述功能。一是使用獲取像素值的基本方法,另一個是使用filter2D函數(shù)。


          該函數(shù)的功能如下:
           


          首先,應(yīng)確保輸入圖像的數(shù)據(jù)類型是無符號的字符格式(unsigned char),當(dāng)內(nèi)部表達(dá)發(fā)生錯誤時,使用 cv::CV_Assert函數(shù)來報錯。

           


          cv::CV_Assert函數(shù)

          https://docs.opencv.org/4.5.2/db/de0/group__core__utils.html


          創(chuàng)建一個與輸入圖像尺寸和數(shù)據(jù)類型均相同的輸出圖像。正如在存儲部分所述,這需要根據(jù)通道的數(shù)量和子列的數(shù)目來定。依據(jù)以上兩個數(shù)目,通過指針的迭代,遍歷像素矩陣中的所有元素。


          利用普通的C操作符[]存取像素,由于需要在同一時間需要訪問多個行,所以必須獲取多個行的指針(前一行,當(dāng)前行和下一行),同時還需要用另一個指針指向存儲計算值的地方。然后,只需利用操作符 []來訪問像素,只要在每次操作之后,簡單地將輸出指針增加一個字節(jié),便能方便地移動輸出指針。


          在圖像的邊界上,會有不存在的像素位置(如(-1)—(-1)),在這種情況下,公式未作出明確的定義,最為簡單的解決方案是不對這些點使用內(nèi)核,邊界的像素值設(shè)置為0:
           


          filter2D函數(shù)


          在圖像處理過程中,濾波器應(yīng)用得非常普遍,在OpenCV中,有一個應(yīng)用掩膜矩陣(在某些地方稱之為內(nèi)核)的函數(shù)。首先需要定義一個保存掩膜矩陣的對象:


          然后調(diào)用filter2D()函數(shù),指定輸入圖像、輸出圖像和所使用的內(nèi)核:
           


          該函數(shù)第五個參數(shù)為可選的參數(shù),用來指定內(nèi)核的中心;第六個參數(shù)用于在存儲濾波像素之前,為其添加一個可選值;第七個參數(shù)用于確定對未定義的區(qū)域(邊界)做什么操作。這個函數(shù)比較短小簡潔,通過優(yōu)化之后,速度要比hand-coded方法快。例如,在本項測試中,hand-coded方法花了約31毫秒時間,而第一種方法只用了13毫秒的時間,二者之間頗有些差異。

          例如:
           


          可以在YouTube上觀看示例程序的運(yùn)行視頻。

          注:本文以C++語言代碼為例,獲取Java和python版本可在原文中查看:

          https://docs.opencv.org/4.5.2/d7/d37/tutorial_mat_mask_operations.html
           
          編輯:于騰凱
          校對:王欣

          下一小節(jié):1.4 對圖像的操作


          往期回顧:
          獨家|OpenCV 1.1 Mat - 基本圖像容器(附鏈接)

          獨家|OpenCV 1.2 如何用OpenCV掃描圖像、查找表和測量時間(附鏈接)





          譯者簡介





          陳之炎,北京交通大學(xué)通信與控制工程專業(yè)畢業(yè),獲得工學(xué)碩士學(xué)位,歷任長城計算機(jī)軟件與系統(tǒng)公司工程師,大唐微電子公司工程師,現(xiàn)任北京吾譯超群科技有限公司技術(shù)支持。目前從事智能化翻譯教學(xué)系統(tǒng)的運(yùn)營和維護(hù),在人工智能深度學(xué)習(xí)和自然語言處理(NLP)方面積累有一定的經(jīng)驗。業(yè)余時間喜愛翻譯創(chuàng)作,翻譯作品主要有:IEC-ISO 7816、伊拉克石油工程項目、新財稅主義宣言等等,其中中譯英作品“新財稅主義宣言”在GLOBAL TIMES正式發(fā)表。能夠利用業(yè)余時間加入到THU 數(shù)據(jù)派平臺的翻譯志愿者小組,希望能和大家一起交流分享,共同進(jìn)步

          翻譯組招募信息

          工作內(nèi)容:需要一顆細(xì)致的心,將選取好的外文文章翻譯成流暢的中文。如果你是數(shù)據(jù)科學(xué)/統(tǒng)計學(xué)/計算機(jī)類的留學(xué)生,或在海外從事相關(guān)工作,或?qū)ψ约和庹Z水平有信心的朋友歡迎加入翻譯小組。

          你能得到:定期的翻譯培訓(xùn)提高志愿者的翻譯水平,提高對于數(shù)據(jù)科學(xué)前沿的認(rèn)知,海外的朋友可以和國內(nèi)技術(shù)應(yīng)用發(fā)展保持聯(lián)系,THU數(shù)據(jù)派產(chǎn)學(xué)研的背景為志愿者帶來好的發(fā)展機(jī)遇。

          其他福利:來自于名企的數(shù)據(jù)科學(xué)工作者,北大清華以及海外等名校學(xué)生他們都將成為你在翻譯小組的伙伴。


          點擊文末“閱讀原文”加入數(shù)據(jù)派團(tuán)隊~



          轉(zhuǎn)載須知

          如需轉(zhuǎn)載,請在開篇顯著位置注明作者和出處(轉(zhuǎn)自:數(shù)據(jù)派ID:DatapiTHU),并在文章結(jié)尾放置數(shù)據(jù)派醒目二維碼。有原創(chuàng)標(biāo)識文章,請發(fā)送【文章名稱-待授權(quán)公眾號名稱及ID】至聯(lián)系郵箱,申請白名單授權(quán)并按要求編輯。

          發(fā)布后請將鏈接反饋至聯(lián)系郵箱(見下方)。未經(jīng)許可的轉(zhuǎn)載以及改編者,我們將依法追究其法律責(zé)任。



          點擊“閱讀原文”擁抱組織



          瀏覽 22
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  操逼动视频 | 黑人操逼视频在线播放 | 一级a啪啪啪 | 狠狠狠狠狠狠操 | 亚洲国产日韩在线观看 |