像素是圖像的基本元素,像素與像素之間存在著某些聯(lián)系,理解像素間的基本關(guān)系是數(shù)字圖像處理的基礎(chǔ)。常見(jiàn)的像素間的基本關(guān)系包括:鄰域、鄰接、通路、連通、距離。
Part1 1. 鄰域
鄰域表示了像素之間的連接關(guān)系。
像素(x,y)的鄰域,是指與像素(x,y)對(duì)應(yīng)的點(diǎn)的集合{(x+p,y+q)} ,其中 (p,q) 為一對(duì)有意義的整數(shù)。鄰域是像素(x,y)附近像素形成的區(qū)域,像素 (x,y) 也被稱(chēng)為中心像素。
最常用的鄰域有以下幾種:
鄰域.png
鄰域是一個(gè)很基礎(chǔ)的概念。后續(xù)我們對(duì)圖像進(jìn)行卷積操作的時(shí)候,通常是對(duì)當(dāng)前像素的鄰域像素進(jìn)行操作的。
以一個(gè)最簡(jiǎn)單的均值濾波為例,均值濾波是對(duì)于每一個(gè)像素點(diǎn), 將其設(shè)定為取其鄰域窗口內(nèi)的所有像素的平均值。
這里的模板,也可以被稱(chēng)為核(kernels)、窗口(windows)、掩模(mask)。
下圖以 3*3 的模板為例,均值濾波會(huì)對(duì)原圖像的每一個(gè)像素點(diǎn),計(jì)算它的鄰域像素和模版矩陣的對(duì)應(yīng)元素的乘積,然后加起來(lái),作為該像素位置的值。窗口的移動(dòng)是從左到右,然后從上到下依次移動(dòng)。
卷積.png
下面,實(shí)現(xiàn)一個(gè)簡(jiǎn)單的均值濾波函數(shù)
MatmeanFilter(Mat&src,intksize=3) { cv::Matdst=src.clone(); intk0=ksize/2; intsum[3]={0,0,0}; for(inti=k0;i(i-k0+m,j-k0+n)[channel]; } } dst.at (i,j)[channel]=saturate_cast ((float)sum[channel]/(ksize*ksize)); } } } returndst; }
當(dāng)然這個(gè)代碼只是粗略地實(shí)現(xiàn)均值濾波,存在著很多優(yōu)化的空間,例如使用積分圖、卷積核分離等。OpenCV 也提供了均值濾波函數(shù) blur() 函數(shù)。
intmain(intargc,char*argv[]) { Matsrc=imread(".../flower.jpg"); imshow("src",src); Matdst; dst=meanFilter(src,15); imshow("meanFilter",dst); blur(src,dst,Size(15,15)); imshow("blur",dst); waitKey(0); return0; }
![dabe3fe0-a3fd-11ee-8b88-92fbcf53809c.jpg](https://file1.elecfans.com/web2/M00/B9/57/wKgZomWM4iyAFHGGAADGWbFITJM998.jpg)
均值濾波函數(shù)效果.png
上面只是簡(jiǎn)單例舉了領(lǐng)域的使用場(chǎng)景,后續(xù)會(huì)有專(zhuān)門(mén)的文章來(lái)詳細(xì)介紹卷積和濾波。
Part2 2. 鄰接
鄰接是指兩個(gè)像素,在位置上相鄰并且取值相同或相近。
我們用 V 表示定義鄰接的灰度值集合。在二值圖像中,V={1} 表示值為1的像素鄰接。在灰度圖像中,V 包含更多的元素。
像素 p 和 q 是 4 鄰接,那么它們一定是 8 鄰接的。反之,不一定成立。
下圖反應(yīng)了 8 鄰接會(huì)帶來(lái)二義性。
鄰接.png
從圖中可以看到,p 是中心像素。
q1、q2 和 p 是 8 鄰接的。
q1 和 p 非 m 鄰接的。
q2 和 p 是 m 鄰接的。
某條通路經(jīng)過(guò)像素 q2、p、q1,那會(huì)有幾種走法呢?
如果從 p、q1、q2 是 8 鄰接的角度看,p 到 q1 可以有2種走法,所以 q2 到 q1 的通路有2條。
同理,從 m 鄰接角度看,p 和 q1 只有1種走法,所以 q2 到 q1 的通路只有1條。
所以,m 鄰接的引入是為了消除 8 鄰接常常帶來(lái)二義性。
從集合的角度看:
Part3 3. 通路
由不同的鄰接定義,可以得到不同的通路:4 鄰接 => 4 通路,8 鄰接 => 8 通路,m 鄰接 => m 通路
通路.png
所以,從中間的圖可以看到 q2 和 q1 之間存在 8 通路,從最右的圖可以看到 q2 和 q1 之間存在 m 通路。
從集合的角度看:
下圖中,p-q 通路對(duì)應(yīng)的是不同的通路。
多種通路.png
Part4 4. 連通
lineType 參數(shù).png
下面的例子,展示了使用不同的 lineType 參數(shù)的效果
intmain(intargc,char*argv[]) { Matimage=Mat::zeros(Size(80,80),CV_8UC3); image.setTo(255);//設(shè)置屏幕為白色 Pointp1(20,0); Pointp2(80,60); Pointp3(0,0); Pointp4(80,80); Pointp5(0,20); Pointp6(60,80); line(image,p1,p2,Scalar(0,0,255),1,LINE_4); line(image,p3,p4,Scalar(255,0,0),1,LINE_8); line(image,p5,p6,Scalar(0,255,0),1,LINE_AA); imshow("src",image); waitKey(0); return0; }
將生成的圖片放大,可以看到使用 LINE_4、LINE_8、LINE_AA 畫(huà)出來(lái)的線段效果是不同的。使用 LINE_AA 效果看上去是最好的,其次是 LINE_8。
不同lineType參數(shù)的效果.png
通過(guò)鄰接可以引申很多概念,鄰接 -> 通路 -> 連通 -> 連通集 -> 區(qū)域/鄰接區(qū)域 -> 前景和背景 -> 邊界
Part5 5. 距離
對(duì)于像素 p(x,y)、q(s,t) 和 z(u,v),如果滿足:
非負(fù)性:D(p,q) ≥ 0
同一性:D(p,q)=0,當(dāng)且僅當(dāng)p=q時(shí)
對(duì)稱(chēng)性:D(p,q) = D(q,p)
直遞性:D(p,z) ≤ D(p,q) + D(q,z)
則稱(chēng) D 是距離的度量函數(shù)。
Part6 6. 總結(jié)
本文涉及到很多概念,這些概念代表著像素間的基本關(guān)系。像鄰域、連通在后續(xù)文章中很多都會(huì)涉及到,像距離又跟相似度有關(guān),所以它們是數(shù)字圖像的基礎(chǔ)。
審核編輯:劉清
-
濾波器
+關(guān)注
關(guān)注
161文章
7876瀏覽量
179063 -
OpenCV
+關(guān)注
關(guān)注
31文章
635瀏覽量
41594 -
均值濾波
+關(guān)注
關(guān)注
0文章
10瀏覽量
7143
原文標(biāo)題:OpenCV 筆記(6):像素間的基本關(guān)系——鄰域、鄰接、通路、連通、距離
文章出處:【微信號(hào):CVSCHOOL,微信公眾號(hào):OpenCV學(xué)堂】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
![](https://file1.elecfans.com/web2/M00/88/4E/wKgaomRmqOGALs0BAAA2gvddzCo488.png)
請(qǐng)問(wèn)TI有圖像連通區(qū)域、亞像素等圖像庫(kù)的支持嗎?
PCB反設(shè)計(jì)系統(tǒng)中的通路探測(cè)電路功能及原理分析
霍爾電位差UH的基本關(guān)系
PCB通路探測(cè)電路的功能及實(shí)現(xiàn)原理是什么
帶空間約束的鄰域中值加權(quán)FCM圖像分割算法
基于鄰域信息熵度量數(shù)值屬性快速約簡(jiǎn)算法
基于最近鄰域像素梯度的視頻背景快速提取
圖像處理教程之圖像的鄰域操作資料說(shuō)明
![圖像處理教程之圖像的<b class='flag-5'>鄰域</b>操作資料說(shuō)明](https://file.elecfans.com/web1/M00/87/27/o4YBAFyCIviAQrFaAAYT4qQ4-QU240.png)
layout和PCB的29個(gè)基本關(guān)系
layout與PCB的29個(gè)基本關(guān)系資料下載
![layout與PCB的29個(gè)<b class='flag-5'>基本關(guān)系</b>資料下載](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
一文弄懂激光器速率方程組及基本關(guān)系式
干貨| 超全面!layout與PCB的29個(gè)基本關(guān)系,收藏這篇就夠了!
![干貨| 超全面!layout與PCB的29個(gè)<b class='flag-5'>基本關(guān)系</b>,收藏這篇就夠了!](https://file1.elecfans.com//web2/M00/AB/80/wKgZomU1JdWASOjFAAKuvqASAhI445.png)
OpenCV4筆記之連通域分析
![OpenCV4筆記之<b class='flag-5'>連通</b>域分析](https://file1.elecfans.com/web2/M00/B8/E8/wKgZomWJSJmAS3uOAAALPyp_hs4538.gif)
評(píng)論