最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python中圖像算術(shù)運(yùn)算的示例詳解

 更新時間:2022年05月05日 15:22:09   作者:woshicver  
還記得你在小學(xué)時學(xué)習(xí)如何加減數(shù)字嗎?現(xiàn)在,你也可以對圖像做同樣的事情!輸入圖像可以進(jìn)行算術(shù)運(yùn)算,例如加法、減法和按位運(yùn)算(AND、OR、NOT、XOR)。這些操作可以幫助提高輸入照片的質(zhì)量。本文將詳解一下這些運(yùn)算,需要的可以參考一下

介紹

還記得你在小學(xué)時學(xué)習(xí)如何加減數(shù)字嗎?現(xiàn)在,你也可以對圖像做同樣的事情!

輸入圖像可以進(jìn)行算術(shù)運(yùn)算,例如加法、減法和按位運(yùn)算(AND、OR、NOT、XOR)。這些操作可以幫助提高輸入照片的質(zhì)量。

在本文中,你將了解使用 OpenCV Python 包對圖像執(zhí)行算術(shù)和按位運(yùn)算的步驟。讓我們開始吧!

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

因此,假設(shè)我們希望合并兩張單獨(dú)的照片中的兩個像素。我們怎樣才能將它們合并?

讓我們想象以下場景。第一個像素的顏色強(qiáng)度為 (200, 0, 0),而第二個像素的顏色強(qiáng)度為 (100, 0, 0)。如果我們只是將這些值相加,我們得到 (300, 0, 0)。這在處理 RGB 圖像時是完全可能的。

那么,我們?nèi)绾卧?Python 中解決這個問題呢?

該解決方案附帶實現(xiàn)了 cv2.add() 和 cv2.subtract() 函數(shù)的 OpenCV 庫。

要執(zhí)行這些操作,你必須在系統(tǒng)上安裝 OpenCV Python 庫。

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

使用 cv2.add() 函數(shù),我們可以添加兩個圖像。cv2.add() 將兩個圖像中的圖片像素相加。執(zhí)行此操作時要記住的一件事是,兩個圖像應(yīng)該具有相同的深度和類型,或者第二個圖像可以只是一個標(biāo)量值。

這個函數(shù)的語法是:cv2.add(img1, img2)

對于這個博客,我們將考慮以下兩張圖片來將兩張圖片相加。

在進(jìn)行算術(shù)運(yùn)算之前,你必須知道如何讀取和顯示加載的圖像。

現(xiàn)在,按照下面的代碼片段閱讀,執(zhí)行兩個圖像的添加,最后顯示添加的圖像。

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

從上面的代碼片段中添加的圖像如下:

這只是簡單的添加。我們可以使用另一個名為 cv2.addWeighted 的函數(shù)來混合圖像。這類似于圖像添加,但圖像被賦予不同的權(quán)重以產(chǎn)生混合或透明的錯覺。

這個函數(shù)的語法是:cv2.addWeighted(img1, wt1, img2, wt2, gammaValue)

按照下面的代碼片段對兩個圖像執(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.4, 0)
 
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)算:圖像減法

就像兩個圖像相加一樣,你可以減去兩個圖像。這可以使用 cv2.subtract() 函數(shù)來完成。請注意,要減去的圖像必須具有相同的大小和深度。

這個函數(shù)的語法是:cv2.subtract(src1, src2)

下面的代碼片段顯示了如何減去兩個圖像。已經(jīng)減去了之前使用的圖像(我們在加法中使用的圖像)。

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

減去的圖像如下:

還嘗試減去兩個更簡單的圖像以使其更易于理解。使用的兩張圖片是:

減去的輸出是:

既然我們已經(jīng)了解了如何對圖像執(zhí)行算術(shù)運(yùn)算,我們將繼續(xù)對圖像進(jìn)行按位運(yùn)算。

位運(yùn)算

當(dāng)我們只需要提取圖像所需的元素時,我們會使用按位運(yùn)算。

這些按位技術(shù)用于各種計算機(jī)視覺應(yīng)用,例如創(chuàng)建圖像蒙版、將水印應(yīng)用于圖像以及創(chuàng)建新圖像。與 OpenCV 中的其他變形方法相比,這些操作對圖像中的單個像素起作用,以產(chǎn)生更準(zhǔn)確的結(jié)果。

圖像上的 And、Or 和 Not 操作

在開始之前,假設(shè)你熟悉三個基本的位運(yùn)算符:AND、OR、NOT。

OpenCV 包括用于執(zhí)行與、或和非操作的內(nèi)置函數(shù)。它們是按位與、按位或和按位非??紤]下面的兩張黑白圖像。現(xiàn)在讓我們將這三個操作應(yīng)用于這兩個圖像,看看會發(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()

上述代碼段的輸出將如下所示:

b2df7e3a7f64d0b9bd29daa3f3f39a8a.png

希望你已經(jīng)學(xué)會了如何使用 OpenCV 對圖像進(jìn)行算術(shù)和按位運(yùn)算。

以上就是Python中圖像算術(shù)運(yùn)算的示例詳解的詳細(xì)內(nèi)容,更多關(guān)于Python圖像算術(shù)運(yùn)算的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python本地及虛擬解釋器配置過程解析

    Python本地及虛擬解釋器配置過程解析

    這篇文章主要介紹了Python本地及虛擬解釋器配置過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-10-10
  • 輕松實現(xiàn)python搭建微信公眾平臺

    輕松實現(xiàn)python搭建微信公眾平臺

    這篇文章主要介紹了python搭建微信公眾平臺的相關(guān)資料和技巧,文中給出了詳細(xì)的python搭建微信公眾平臺的步驟,感興趣的朋友可以參考一下
    2016-02-02
  • python實現(xiàn)的DES加密算法和3DES加密算法實例

    python實現(xiàn)的DES加密算法和3DES加密算法實例

    這篇文章主要介紹了python實現(xiàn)的DES加密算法和3DES加密算法,以實例形式較為詳細(xì)的分析了DES加密算法和3DES加密算法的原理與實現(xiàn)技巧,需要的朋友可以參考下
    2015-06-06
  • Python對數(shù)據(jù)庫操作

    Python對數(shù)據(jù)庫操作

    本文給大家介紹Windows、Linux下安裝MySQL-python,及安裝過程中常遇到的問題,該如何解決,非常具有參考借鑒價值,特此分享供大家參考
    2016-03-03
  • python數(shù)據(jù)類型_元組、字典常用操作方法(介紹)

    python數(shù)據(jù)類型_元組、字典常用操作方法(介紹)

    下面小編就為大家?guī)硪黄猵ython數(shù)據(jù)類型_元組、字典常用操作方法(介紹)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • python os庫使用示例教程

    python os庫使用示例教程

    這篇文章主要介紹了python os庫使用示例教程,本文通過示例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-07-07
  • 基于Python實現(xiàn)船舶的MMSI的獲取(推薦)

    基于Python實現(xiàn)船舶的MMSI的獲取(推薦)

    工作中遇到一個需求,需要通過網(wǎng)站查詢船舶名稱得到MMSI碼,網(wǎng)站來自船訊網(wǎng)。這篇文章主要介紹了基于Python實現(xiàn)船舶的MMSI的獲取,需要的朋友可以參考下
    2019-10-10
  • python?tkinter中的Frame控件用法詳解

    python?tkinter中的Frame控件用法詳解

    Tkinter中的Frame控件是一個用于組織和管理其他控件的容器,它可以將其他控件放置在自己內(nèi)部,用于創(chuàng)建更復(fù)雜的用戶界面,要創(chuàng)建一個Frame控件,可以使用Tkinter的Frame類,所以本文就通過一個簡單的示例給大家介紹一下
    2023-08-08
  • Python中方法鏈的使用方法

    Python中方法鏈的使用方法

    這篇文章主要為大家詳細(xì)介紹了Python中方法鏈的使用方法,方法鏈(method chaining)是面向?qū)ο蟮木幊陶Z言中的一種常見語法,對方法鏈感興趣的小伙伴們可以參考一下
    2016-02-02
  • 對django layer彈窗組件的使用詳解

    對django layer彈窗組件的使用詳解

    今天小編就為大家分享一篇對django layer彈窗組件的使用詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08

最新評論

雅安市| 离岛区| 盐津县| 江安县| 汉中市| 禹州市| 青阳县| 顺义区| 竹溪县| 正宁县| 德州市| 报价| 喀喇沁旗| 佛坪县| 永嘉县| 安龙县| 赣榆县| 滕州市| 武鸣县| 揭阳市| 宾川县| 贵德县| 大荔县| 合水县| 岳池县| 佛冈县| 郓城县| 鄂州市| 长兴县| 九江市| 汕尾市| 连城县| 胶南市| 柳河县| 高台县| 裕民县| 三门峡市| 隆回县| 开封市| 连山| 神池县|