日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

矩阵 计算机应用,《计算机视觉算法:基于OpenCV的计算机应用开发》 —3.3 元素级矩阵操作...

發(fā)布時(shí)間:2025/3/12 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 矩阵 计算机应用,《计算机视觉算法:基于OpenCV的计算机应用开发》 —3.3 元素级矩阵操作... 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

3.3 元素級矩陣操作

基于元素的(元素級)矩陣操作是計(jì)算機(jī)視覺中的一類數(shù)學(xué)函數(shù)和算法,它處理矩陣的各個(gè)元素,或者說,圖像中的每個(gè)像素。注意基于元素的操作可以并行化,因此矩陣元素的處理順序不重要。這個(gè)特點(diǎn)是本節(jié)函數(shù)和算法與本章的后續(xù)小節(jié)中的函數(shù)和算法的重要區(qū)別。

3.3.1 基本操作

OpenCV提供了所有必要的函數(shù)和重載操作符來進(jìn)行兩個(gè)矩陣之間或矩陣和標(biāo)量之間的加減乘除操作。

3.3.1.1 加法操作

函數(shù)add和運(yùn)算符+可用于兩個(gè)矩陣間元素相加或一個(gè)矩陣的元素與一個(gè)標(biāo)量相加,如下例所示:

可以使用以下代碼替換前面代碼中的最后一行:

下圖顯示了兩個(gè)圖像相加后的結(jié)果:

如果你想給Mat對象的每個(gè)元素都加上一個(gè)標(biāo)量值,可以用類似如下代碼:

如果在灰度圖像上執(zhí)行上述代碼,結(jié)果將比源圖像有更高的亮度。請注意,如果圖像有三個(gè)通道,則必須使用包含三個(gè)元素的向量而不是單個(gè)值。例如,為了使RGB圖像更亮,你可以使用如下代碼:

下圖展示了上述代碼執(zhí)行之后的效果,處理后的圖像亮度比源圖像提高了:

在前面的示例代碼中,僅通過在每個(gè)像素上增加一個(gè)數(shù)值即可獲得更亮的圖像。

3.3.1.2 加權(quán)加法

除了簡單將兩個(gè)圖像相加,你還可以使用加權(quán)加法,加權(quán)加法會對每個(gè)圖像增加權(quán)重之后再相加。這相當(dāng)于對加法的每個(gè)參與者分別設(shè)置不透明度級別。要進(jìn)行加權(quán)加法,你可以使用addWeighted函數(shù):

如果使用此代碼來處理上一節(jié)中的示例圖片,結(jié)果將類似于下圖:

透明文本類似于通常在照片編輯程序使用的水印。你注意到代碼中對alpha、beta和gamma值的注釋了嗎?顯然,如果beta值為1.0則上面的例子就跟普通的圖像疊加函數(shù)完全相同,此時(shí)疊加文本沒有透明度。

3.3.1.3 減法操作

與兩個(gè)Mat對象疊加類似,你也可以使用substract函數(shù)或-運(yùn)算符從一個(gè)圖像的所有元素中減去另一個(gè)圖像的所有元素。請看下例:

上面代碼中的最后一行也可以替換為:

如果我們使用前面示例中的圖像,則減法操作的結(jié)果如下:

從源圖像中減去較高像素值(較亮像素)會生成深色的疊加文本。另外,與加法不同,減法運(yùn)算結(jié)果與其操作數(shù)的順序相關(guān)。嘗試交換操作數(shù),自己看看會發(fā)生什么。

就像圖像加法一樣,也可以讓圖像的所有像素減去一個(gè)常數(shù)。你可以猜到,從所有像素中減去常量值將生成更暗的圖像(取決于該值的大小),這與加法運(yùn)算相反。下面展示了通過簡單的減法操作使圖像變得更暗的例子:

如果源圖像是三通道RGB圖像,則需要使用向量作為第二個(gè)操作數(shù):

3.3.1.4 乘法和除法操作

與加法和減法類似,你還可以將Mat對象的所有元素與另一個(gè)Mat對象的所有元素相乘或相除。同樣,兩個(gè)操作都可以使用矩陣和標(biāo)量。乘法可以使用OpenCV的multiply函數(shù)(類似于Mat :: mul函數(shù)),而除法可以使用divide函數(shù)。

見下例:

前面代碼中的scale是一個(gè)附加參數(shù),可以傳給multiply和divide函數(shù)來縮放結(jié)果中Mat對象的所有元素。你還可以在矩陣乘法或除法中使用標(biāo)量,如下示例所示:

顯然,前面的代碼將生成兩個(gè)圖像,一個(gè)是源圖像亮度的5倍(變亮),一個(gè)是源圖像亮度的1/5(變暗)。這里要注意的一點(diǎn)是,與加法和減法不同,乘除法得到的圖像不會均勻地變亮或變暗,你應(yīng)該會注意到較亮的區(qū)域變得更亮,反之亦然。其原因顯然是由于乘法和除法運(yùn)算的效果與加減法不同,經(jīng)過乘除法操作后,較亮像素的值上升或下降要快得多。有趣的是,在大多數(shù)照片編輯應(yīng)用程序中,就是使用這個(gè)技術(shù)來使圖像的明亮區(qū)域變亮或變暗的。

總結(jié)

以上是生活随笔為你收集整理的矩阵 计算机应用,《计算机视觉算法:基于OpenCV的计算机应用开发》 —3.3 元素级矩阵操作...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。