<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>

          學(xué)習(xí)圖像的算術(shù)運(yùn)算

          共 5269字,需瀏覽 11分鐘

           ·

          2023-08-18 20:13

          點(diǎn)擊上方小白學(xué)視覺(jué)”,選擇加"星標(biāo)"或“置頂

          重磅干貨,第一時(shí)間送達(dá)

          介紹
          還記得你在小學(xué)時(shí)學(xué)習(xí)如何加減數(shù)字嗎?現(xiàn)在,你也可以對(duì)圖像做同樣的事情!
          輸入圖像可以進(jìn)行算術(shù)運(yùn)算,例如加法、減法和按位運(yùn)算(AND、OR、NOT、XOR)。這些操作可以幫助提高輸入照片的質(zhì)量。
          在本文中,你將了解使用 OpenCV Python 包對(duì)圖像執(zhí)行算術(shù)和按位運(yùn)算的步驟。讓我們開(kāi)始吧!

          對(duì)圖像進(jìn)行算術(shù)運(yùn)算是什么意思?

          因此,假設(shè)我們希望合并兩張單獨(dú)的照片中的兩個(gè)像素。我們?cè)鯓硬拍軐⑺鼈兒喜ⅲ?/span>
          讓我們想象以下場(chǎng)景。第一個(gè)像素的顏色強(qiáng)度為 (200, 0, 0),而第二個(gè)像素的顏色強(qiáng)度為 (100, 0, 0)。如果我們只是將這些值相加,我們得到 (300, 0, 0)。這在處理 RGB 圖像時(shí)是完全可能的。
          那么,我們?nèi)绾卧?Python 中解決這個(gè)問(wèn)題呢?
          該解決方案附帶實(shí)現(xiàn)了 cv2.add() 和 cv2.subtract() 函數(shù)的 OpenCV 庫(kù)。
          要執(zhí)行這些操作,你必須在系統(tǒng)上安裝 OpenCV Python 庫(kù)。

          算術(shù)運(yùn)算:圖像相加

          使用 cv2.add() 函數(shù),我們可以添加兩個(gè)圖像。cv2.add() 將兩個(gè)圖像中的圖片像素相加。執(zhí)行此操作時(shí)要記住的一件事是,兩個(gè)圖像應(yīng)該具有相同的深度和類(lèi)型,或者第二個(gè)圖像可以只是一個(gè)標(biāo)量值。
          這個(gè)函數(shù)的語(yǔ)法是:cv2.add(img1, img2)
          對(duì)于這個(gè)博客,我們將考慮以下兩張圖片來(lái)將兩張圖片相加。
          在進(jìn)行算術(shù)運(yùn)算之前,你必須知道如何讀取和顯示加載的圖像。
          現(xiàn)在,按照下面的代碼片段閱讀,執(zhí)行兩個(gè)圖像的添加,最后顯示添加的圖像。
             
          import cv2

          img1 = cv2.imread('image1_add.jpg'1)
          #or
          #img1 = cv2.imread('C:\\Users\\Admin\\Downloads\\image1_add.jpg', 1)

          cv2.imshow('Image 1', img1)
          cv2.waitKey(0)
          cv2.destroyAllWindows()

          img2 = cv2.imread('image2_add.jpg'1)
          #or
          #img2 = cv2.imread('C:\\Users\\Admin\\Downloads\\image2_add.jpg', 1)

          cv2.imshow('Image 2', img2)
          cv2.waitKey(0)
          cv2.destroyAllWindows()

          # Add the images
          added_img = cv2.add(img1, img2)

          cv2.imshow('Added Image', added_img)
          cv2.waitKey(0)
          cv2.destroyAllWindows()
          從上面的代碼片段中添加的圖像如下:
          這只是簡(jiǎn)單的添加。我們可以使用另一個(gè)名為 cv2.addWeighted 的函數(shù)來(lái)混合圖像。這類(lèi)似于圖像添加,但圖像被賦予不同的權(quán)重以產(chǎn)生混合或透明的錯(cuò)覺(jué)。
          這個(gè)函數(shù)的語(yǔ)法是:cv2.addWeighted(img1, wt1, img2, wt2, gammaValue)
          按照下面的代碼片段對(duì)兩個(gè)圖像執(zhí)行加權(quán)加法。
             
          import cv2

          img1 = cv2.imread('image1_add.jpg'1)
          #or
          #img1 = cv2.imread('C:\\Users\\Admin\\Downloads\\image1_add.jpg', 1)

          cv2.imshow('Image 1', img1)
          cv2.waitKey(0)
          cv2.destroyAllWindows()

          img2 = cv2.imread('image2_add.jpg'1)
          #or
          #img2 = cv2.imread('C:\\Users\\Admin\\Downloads\\image2_add.jpg', 1)

          cv2.imshow('Image 2', img2)
          cv2.waitKey(0)
          cv2.destroyAllWindows()


          #Addition - weighted addition
          added_wt_img = cv2.addWeighted(img1, 0.6, img2, 0.40)

          cv2.imshow('Added Weight Image', added_wt_img)
          cv2.waitKey(0)
          cv2.destroyAllWindows()
          加權(quán)加法的輸出如下:
          在這里,拍攝了兩張圖像將它們混合在一起。第一張圖片的權(quán)重為 0.6,第二張圖片的權(quán)重為 0.4。你可以根據(jù)需要更改圖像的權(quán)重!

          算術(shù)運(yùn)算:圖像減法

          就像兩個(gè)圖像相加一樣,你可以減去兩個(gè)圖像。這可以使用 cv2.subtract() 函數(shù)來(lái)完成。請(qǐng)注意,要減去的圖像必須具有相同的大小和深度。
          這個(gè)函數(shù)的語(yǔ)法是:cv2.subtract(src1, src2)
          下面的代碼片段顯示了如何減去兩個(gè)圖像。已經(jīng)減去了之前使用的圖像(我們?cè)诩臃ㄖ惺褂玫膱D像)。
             
          import cv2

          img1 = cv2.imread('image1_add.jpg'1)
          #or
          #img1 = cv2.imread('C:\\Users\\Admin\\Downloads\\image1_add.jpg', 1)

          cv2.imshow('Image 1', img1)
          cv2.waitKey(0)
          cv2.destroyAllWindows()

          img2 = cv2.imread('image2_add.jpg'1)
          #or
          #img2 = cv2.imread('C:\\Users\\Admin\\Downloads\\image2_add.jpg', 1)

          cv2.imshow('Image 2', img2)
          cv2.waitKey(0)
          cv2.destroyAllWindows()

          sub_img = cv2.subtract(img1, img2)

          cv2.imshow('Subtracted Image', sub_img)
          cv2.waitKey(0)
          cv2.destroyAllWindows()
          減去的圖像如下:
          還嘗試減去兩個(gè)更簡(jiǎn)單的圖像以使其更易于理解。使用的兩張圖片是:
          減去的輸出是:
          既然我們已經(jīng)了解了如何對(duì)圖像執(zhí)行算術(shù)運(yùn)算,我們將繼續(xù)對(duì)圖像進(jìn)行按位運(yùn)算。

          位運(yùn)算

          當(dāng)我們只需要提取圖像所需的元素時(shí),我們會(huì)使用按位運(yùn)算。
          這些按位技術(shù)用于各種計(jì)算機(jī)視覺(jué)應(yīng)用,例如創(chuàng)建圖像蒙版、將水印應(yīng)用于圖像以及創(chuàng)建新圖像。與 OpenCV 中的其他變形方法相比,這些操作對(duì)圖像中的單個(gè)像素起作用,以產(chǎn)生更準(zhǔn)確的結(jié)果。

          圖像上的 And、Or 和 Not 操作

          在開(kāi)始之前,假設(shè)你熟悉三個(gè)基本的位運(yùn)算符:AND、OR、NOT。
          OpenCV 包括用于執(zhí)行與、或和非操作的內(nèi)置函數(shù)。它們是按位與、按位或和按位非。考慮下面的兩張黑白圖像?,F(xiàn)在讓我們將這三個(gè)操作應(yīng)用于這兩個(gè)圖像,看看會(huì)發(fā)生什么。
             
          import cv2

          #read the images
          img1 = cv2.imread('bitwise_image_1.jpg')
          img2 = cv2.imread('bitwise_image_2.jpg')

          bitwise_AND = cv2.bitwise_and(img1, img2)
          bitwise_OR = cv2.bitwise_or(img1, img2)
          bitwise_NOT = cv2.bitwise_not(img1)

          cv2.imshow('img1', img1)
          cv2.waitKey(0)
          cv2.destroyAllWindows()

          cv2.imshow('img2', img2)
          cv2.waitKey(0)
          cv2.destroyAllWindows()

          cv2.imshow('AND', bitwise_AND)
          cv2.waitKey(0)
          cv2.destroyAllWindows()

          cv2.imshow('OR', bitwise_OR)
          cv2.waitKey(0)
          cv2.destroyAllWindows()

          cv2.imshow('NOT', bitwise_NOT)
          cv2.waitKey(0)
          cv2.destroyAllWindows()
          上述代碼段的輸出將如下所示:
          希望你已經(jīng)學(xué)會(huì)了如何使用 OpenCV 對(duì)圖像進(jìn)行算術(shù)和按位運(yùn)算。
             
          下載1:OpenCV-Contrib擴(kuò)展模塊中文版教程
          在「小白學(xué)視覺(jué)」公眾號(hào)后臺(tái)回復(fù):擴(kuò)展模塊中文教程即可下載全網(wǎng)第一份OpenCV擴(kuò)展模塊教程中文版,涵蓋擴(kuò)展模塊安裝、SFM算法、立體視覺(jué)、目標(biāo)跟蹤、生物視覺(jué)、超分辨率處理等二十多章內(nèi)容。

          下載2:Python視覺(jué)實(shí)戰(zhàn)項(xiàng)目52講
          小白學(xué)視覺(jué)公眾號(hào)后臺(tái)回復(fù):Python視覺(jué)實(shí)戰(zhàn)項(xiàng)目,即可下載包括圖像分割、口罩檢測(cè)、車(chē)道線(xiàn)檢測(cè)、車(chē)輛計(jì)數(shù)、添加眼線(xiàn)、車(chē)牌識(shí)別、字符識(shí)別、情緒檢測(cè)、文本內(nèi)容提取、面部識(shí)別等31個(gè)視覺(jué)實(shí)戰(zhàn)項(xiàng)目,助力快速學(xué)校計(jì)算機(jī)視覺(jué)。

          下載3:OpenCV實(shí)戰(zhàn)項(xiàng)目20講
          小白學(xué)視覺(jué)公眾號(hào)后臺(tái)回復(fù):OpenCV實(shí)戰(zhàn)項(xiàng)目20講,即可下載含有20個(gè)基于OpenCV實(shí)現(xiàn)20個(gè)實(shí)戰(zhàn)項(xiàng)目,實(shí)現(xiàn)OpenCV學(xué)習(xí)進(jìn)階。

          交流群


          歡迎加入公眾號(hào)讀者群一起和同行交流,目前有SLAM、三維視覺(jué)、傳感器自動(dòng)駕駛、計(jì)算攝影、檢測(cè)、分割、識(shí)別、醫(yī)學(xué)影像、GAN、算法競(jìng)賽等微信群(以后會(huì)逐漸細(xì)分),請(qǐng)掃描下面微信號(hào)加群,備注:”昵稱(chēng)+學(xué)校/公司+研究方向“,例如:”張三 + 上海交大 + 視覺(jué)SLAM“。請(qǐng)按照格式備注,否則不予通過(guò)。添加成功后會(huì)根據(jù)研究方向邀請(qǐng)進(jìn)入相關(guān)微信群。請(qǐng)勿在群內(nèi)發(fā)送廣告,否則會(huì)請(qǐng)出群,謝謝理解~


          瀏覽 228
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <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>
                  天天爽天天澡天天爽视频 - 百度 无码毛片一区二区三区四区五区六区 | 99在线精品视频免费观看软件 | 免费A片国产毛无码A片牛牛 | www.我操| 亚洲午夜男女爽爽影院 |