今天我們一起學(xué)習(xí)的是OpenCV中的圖像的計(jì)算,在圖像計(jì)算中,分為像素級(jí)運(yùn)算和代數(shù)運(yùn)算這兩大類,今天我們借助OpenCV中的函數(shù)一起來(lái)看看這些運(yùn)算。
一:圖像的像素級(jí)運(yùn)算
像素級(jí)運(yùn)算中非常常用的就是點(diǎn)運(yùn)算,之前的文章中說(shuō)過(guò)的讓一張圖片反轉(zhuǎn)顏色其實(shí)就是點(diǎn)運(yùn)算來(lái)實(shí)現(xiàn)的。點(diǎn)運(yùn)算我們一般將其分為三大類:
線性點(diǎn)運(yùn)算、非線性點(diǎn)運(yùn)算、映射表點(diǎn)運(yùn)算
點(diǎn)運(yùn)算有以下的幾個(gè)特點(diǎn):
1:點(diǎn)運(yùn)算針對(duì)圖像中的每一個(gè)像素灰度,獨(dú)立地進(jìn)行灰度值的改變,換句話說(shuō),點(diǎn)運(yùn)算實(shí)際上是一種在灰度程度上進(jìn)行的變換,這是前提。
2:輸出圖像中每個(gè)像素點(diǎn)的灰度值,僅取決于相應(yīng)輸入像素點(diǎn)的值
3:點(diǎn)運(yùn)算不改變圖像內(nèi)的空間關(guān)系
4:從像素到像素的操作
5:點(diǎn)運(yùn)算可完全由灰度變換函數(shù)或灰度映射表確定
具體的例子可以參照之前的文章進(jìn)行試驗(yàn),這里不再贅述
二:代數(shù)運(yùn)算
代數(shù)運(yùn)算最常見的是加、減、乘、除這四類,整個(gè)代數(shù)運(yùn)算對(duì)圖片的要求挺高的,首先要尺寸大小相同,然后圖片的體積不能太大,如果太大運(yùn)算起來(lái)很費(fèi)時(shí)間。
1. 加法
加法運(yùn)算的計(jì)算公式如下:
C(x,y) = A(x,y) + B(x,y)
其實(shí)就是將A,B兩張圖片每個(gè)像素值相加得到一張新的圖片,圖像加法在圖像合成方面用的比較廣泛。假如我們將兩個(gè)圖像f(x,y)和h(x,y)進(jìn)行以下處理:
g(x,y) = 0.5f(x,y) + 0.5h(x,y)
這樣圖像會(huì)得到類似二次曝光的效果
將這個(gè)公式進(jìn)行推廣:
g(x,y) = αf(x,y) + βh(x,y) 其中α+β= 1
然后合理的調(diào)節(jié)α,β的值,我們可以將兩張圖片進(jìn)行合成,并且效果很不錯(cuò)
接下來(lái)我們使用OpenCV來(lái)進(jìn)行一下操作:
在OpenCV中提供了一些圖片進(jìn)行試驗(yàn):
找到你相應(yīng)的安裝OpenCV的路徑,然后按照?qǐng)D片進(jìn)行查找即可:
在這里我們選擇其中的LinuxLogo和WindowsLogo進(jìn)行運(yùn)算,我們定義一個(gè)函數(shù),按照以下調(diào)用即可:
結(jié)果如下:
2. 減法
C(x,y) = A(x,y) - B(x,y)
減法我們可以看做是加法的反例,減法主要用來(lái)去除不需要的疊加性圖案
或者檢測(cè)同一場(chǎng)景兩幅圖像之間的變化。
調(diào)用方法如下:
讓我們看看結(jié)果:
3. 乘法
C(x,y) = A(x,y)×B(x,y) 乘法主要用在圖像的局部顯示,同時(shí)可以用二值蒙板圖像與原圖像做乘法,通常來(lái)說(shuō)就是加濾鏡。。。 OpenCV中乘除法的操作方法:
結(jié)果如下:
這里說(shuō)一下為什么不寫一下除法,因?yàn)槊總€(gè)像素點(diǎn)取值0-255,一相除以后沒有多少數(shù)值了,所呈現(xiàn)出來(lái)的圖像也沒有什么有效信息,所以我們一般不怎么使用除法。
三:邏輯運(yùn)算(求反、異或、或、與) 1)求反的定義 g(x,y) = R - f(x,y) R為f(x, y)的灰度級(jí)。 可以應(yīng)用在: 獲得一個(gè)圖像的負(fù)像 獲得一個(gè)子圖像的補(bǔ)圖像 2)異或運(yùn)算的定義 g(x,y) = f(x,y) or h(x,y) 主要應(yīng)用舉例 獲得相交子圖像 3)與運(yùn)算的定義 g(x,y) = f(x,y) and h(x,y) 主要應(yīng)用 求兩個(gè)子圖像的相交子圖 在OpenCV中的操作如下:
得到的結(jié)果如下:
四:尾巴 在上邊的一些操作中,可以看到我基本沒有寫代碼,直接調(diào)用OpenCV即可,如今的代碼庫(kù)多種多樣,開源的數(shù)不勝數(shù),可以說(shuō)讓我們進(jìn)入了傻瓜編程階段,并且在OpenCV中,越來(lái)越多的函數(shù)命名更加直接,極大地簡(jiǎn)化了我們的操作,我們可以有更多的精力放在算法優(yōu)化上,而不是在寫無(wú)窮無(wú)盡的程序。其實(shí)數(shù)字圖像處理本身的算法理論很簡(jiǎn)單,但是一但實(shí)際操作起來(lái),問題反而不少,各位希望可以多找?guī)追鶊D像嘗試一下,自己分析一下,相信會(huì)有更多的收獲! 在中華文化里,鼠乃十二生肖之首,進(jìn)入鼠年就代表著開始新一輪生肖紀(jì)年,也寓意著新的開端,給大家提前拜一個(gè)早年!奮斗創(chuàng)造歷史,實(shí)干成就未來(lái),希望和大家在新的一年里一起努力,共同成長(zhǎng),也感謝大家的支持!
責(zé)任編輯:xj
原文標(biāo)題:【CV學(xué)習(xí)筆記】圖像的計(jì)算
文章出處:【微信公眾號(hào):深度學(xué)習(xí)自然語(yǔ)言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
圖像
+關(guān)注
關(guān)注
2文章
1092瀏覽量
41019 -
計(jì)算
+關(guān)注
關(guān)注
2文章
453瀏覽量
39208 -
CV
+關(guān)注
關(guān)注
0文章
53瀏覽量
17065
原文標(biāo)題:【CV學(xué)習(xí)筆記】圖像的計(jì)算
文章出處:【微信號(hào):zenRRan,微信公眾號(hào):深度學(xué)習(xí)自然語(yǔ)言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
基于LockAI視覺識(shí)別模塊:C++使用圖像的統(tǒng)計(jì)信息
基于LockAI視覺識(shí)別模塊:C++圖像的基本運(yùn)算
AI模型部署邊緣設(shè)備的奇妙之旅:如何在邊緣端部署OpenCV
AI模型部署邊緣設(shè)備的奇妙之旅:如何在邊緣端部署OpenCV

基于OpenCV的拆分和合并圖像通道實(shí)驗(yàn)案例分享_基于RK3568教學(xué)實(shí)驗(yàn)箱
RK3568 + OpenCV 會(huì)碰撞出什么火花?案例詳解:2-1 基于OpenCV的畫線實(shí)驗(yàn)
一個(gè)月速成python+OpenCV圖像處理

手寫圖像模板匹配算法在OpenCV中的實(shí)現(xiàn)

計(jì)算機(jī)視覺中的圖像融合

評(píng)論