0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

像素間的基本關(guān)系—鄰域、鄰接、通路、連通、距離

OpenCV學(xué)堂 ? 來源:Java與Android技術(shù)棧 ? 2023-12-28 10:41 ? 次閱讀

像素是圖像的基本元素,像素與像素之間存在著某些聯(lián)系,理解像素間的基本關(guān)系是數(shù)字圖像處理的基礎(chǔ)。常見的像素間的基本關(guān)系包括:鄰域、鄰接、通路、連通、距離。

Part1 1. 鄰域

鄰域表示了像素之間的連接關(guān)系。

像素(x,y)的鄰域,是指與像素(x,y)對應(yīng)的點(diǎn)的集合{(x+p,y+q)} ,其中 (p,q) 為一對有意義的整數(shù)。鄰域是像素(x,y)附近像素形成的區(qū)域,像素 (x,y) 也被稱為中心像素。

最常用的鄰域有以下幾種:

wKgZomWM4NaAY2QrAACtuvEvnHQ314.jpg

daa31e0e-a3fd-11ee-8b88-92fbcf53809c.jpg

鄰域.png

鄰域是一個(gè)很基礎(chǔ)的概念。后續(xù)我們對圖像進(jìn)行卷積操作的時(shí)候,通常是對當(dāng)前像素的鄰域像素進(jìn)行操作的。

以一個(gè)最簡單的均值濾波為例,均值濾波是對于每一個(gè)像素點(diǎn), 將其設(shè)定為取其鄰域窗口內(nèi)的所有像素的平均值。

wKgaomWM4Q-AZxloAABPzLmnb3A848.jpg

這里的模板,也可以被稱為核(kernels)、窗口(windows)、掩模(mask)。

下圖以 3*3 的模板為例,均值濾波會(huì)對原圖像的每一個(gè)像素點(diǎn),計(jì)算它的鄰域像素和模版矩陣的對應(yīng)元素的乘積,然后加起來,作為該像素位置的值。窗口的移動(dòng)是從左到右,然后從上到下依次移動(dòng)。

daae8208-a3fd-11ee-8b88-92fbcf53809c.jpg卷積.png

下面,實(shí)現(xiàn)一個(gè)簡單的均值濾波函數(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

均值濾波函數(shù)效果.png

上面只是簡單例舉了領(lǐng)域的使用場景,后續(xù)會(huì)有專門的文章來詳細(xì)介紹卷積和濾波。

Part2 2. 鄰接

鄰接是指兩個(gè)像素,在位置上相鄰并且取值相同或相近。

我們用 V 表示定義鄰接的灰度值集合。在二值圖像中,V={1} 表示值為1的像素鄰接。在灰度圖像中,V 包含更多的元素。

wKgaomWM4TuAL31qAACRxEJ94ZI436.jpg

像素 p 和 q 是 4 鄰接,那么它們一定是 8 鄰接的。反之,不一定成立。

下圖反應(yīng)了 8 鄰接會(huì)帶來二義性。

dac40cae-a3fd-11ee-8b88-92fbcf53809c.jpg鄰接.png

從圖中可以看到,p 是中心像素。

q1、q2 和 p 是 8 鄰接的。

q1 和 p 非 m 鄰接的。

q2 和 p 是 m 鄰接的。

某條通路經(jīng)過像素 q2、p、q1,那會(huì)有幾種走法呢?

如果從 p、q1、q2 是 8 鄰接的角度看,p 到 q1 可以有2種走法,所以 q2 到 q1 的通路有2條。

同理,從 m 鄰接角度看,p 和 q1 只有1種走法,所以 q2 到 q1 的通路只有1條。

所以,m 鄰接的引入是為了消除 8 鄰接常常帶來二義性

從集合的角度看:

Part3 3. 通路

wKgZomWM4V-AGnNvAABlC4H-p5M436.jpg

由不同的鄰接定義,可以得到不同的通路:4 鄰接 => 4 通路,8 鄰接 => 8 通路,m 鄰接 => m 通路

dad4b57c-a3fd-11ee-8b88-92fbcf53809c.jpg通路.png

所以,從中間的圖可以看到 q2 和 q1 之間存在 8 通路,從最右的圖可以看到 q2 和 q1 之間存在 m 通路。

從集合的角度看:

下圖中,p-q 通路對應(yīng)的是不同的通路。

dae2c900-a3fd-11ee-8b88-92fbcf53809c.jpg多種通路.png

Part4 4. 連通

wKgaomWM4YKAHWRQAAD1mEwry-o651.jpg

daea7cd6-a3fd-11ee-8b88-92fbcf53809c.jpglineType 參數(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 畫出來的線段效果是不同的。使用 LINE_AA 效果看上去是最好的,其次是 LINE_8。

dafa6e70-a3fd-11ee-8b88-92fbcf53809c.jpg不同lineType參數(shù)的效果.png

通過鄰接可以引申很多概念,鄰接 -> 通路 -> 連通 -> 連通集 -> 區(qū)域/鄰接區(qū)域 -> 前景和背景 -> 邊界

Part5 5. 距離

對于像素 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í)

對稱性:D(p,q) = D(q,p)

直遞性:D(p,z) ≤ D(p,q) + D(q,z)

則稱 D 是距離的度量函數(shù)。

wKgZomWM4c6ARoEoAAFeCq0_1Xc022.jpg

Part6 6. 總結(jié)

本文涉及到很多概念,這些概念代表著像素間的基本關(guān)系。像鄰域、連通在后續(xù)文章中很多都會(huì)涉及到,像距離又跟相似度有關(guān),所以它們是數(shù)字圖像的基礎(chǔ)。








審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 濾波器
    +關(guān)注

    關(guān)注

    161

    文章

    7811

    瀏覽量

    178088
  • OpenCV
    +關(guān)注

    關(guān)注

    31

    文章

    635

    瀏覽量

    41345
  • 均值濾波
    +關(guān)注

    關(guān)注

    0

    文章

    10

    瀏覽量

    7102

原文標(biāo)題:OpenCV 筆記(6):像素間的基本關(guān)系——鄰域、鄰接、通路、連通、距離

文章出處:【微信號:CVSCHOOL,微信公眾號:OpenCV學(xué)堂】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    [8.1.1]--8.1.1像素基本關(guān)系學(xué)習(xí)視頻

    圖像處理圖像識別
    jf_75936199
    發(fā)布于 :2023年04月28日 02:26:04

    請問TI有圖像連通區(qū)域、亞像素等圖像庫的支持嗎?

    請問TI有圖像連通區(qū)域、亞像素等圖像庫的支持嗎?
    發(fā)表于 07-25 07:18

    PCB反設(shè)計(jì)系統(tǒng)中的通路探測電路功能及原理分析

      1 引言  電子工程師在進(jìn)行電子設(shè)備的反設(shè)計(jì)或者維修工作時(shí),首先需要了解未知印刷電路板(PCB)上各元件的連接關(guān)系,因此需要對PCB上各元件引腳之間的連通關(guān)系進(jìn)行測量并記錄?! ∽詈唵蔚姆椒?/div>
    發(fā)表于 09-10 16:56

    霍爾電位差UH的基本關(guān)系

    霍爾電位差UH的基本關(guān)系為: UH=RHIB/d(1)RH=1/nq(金屬) (2) 式中 RH——霍爾系數(shù);n——單位體積內(nèi)載流子或自由電子的個(gè)數(shù);q——電子電量;I——通過的電流;B——垂直于I的磁感應(yīng)強(qiáng)度;d——導(dǎo)體的厚度。
    發(fā)表于 12-25 10:43

    PCB通路探測電路的功能及實(shí)現(xiàn)原理是什么

    本文通過對PCB通路探測電路的功能及實(shí)現(xiàn)原理的分析,為大規(guī)模PCB上元件引腳通路關(guān)系的測量提供了一種新的思路。
    發(fā)表于 04-27 06:02

    帶空間約束的鄰域中值加權(quán)FCM圖像分割算法

    在聚類分析過程中,歐氏距離是最為常用的距離度量方法,而傳統(tǒng)的基于歐氏距離的圖像分割方法沒有綜合考慮空間信息和鄰域特征等因素。提出了一種用鄰域
    發(fā)表于 11-21 16:53 ?5次下載

    基于鄰域信息熵度量數(shù)值屬性快速約簡算法

    ,鄰域信息熵度量不僅關(guān)注約簡屬性集正域變化,而且考察負(fù)域樣本空間約簡屬性鄰域等價(jià)類在決策屬性劃分的分布,具備更好的鄰域關(guān)系度量細(xì)粒度。實(shí)驗(yàn)表明,對比
    發(fā)表于 12-05 17:19 ?0次下載

    基于最近鄰域像素梯度的視頻背景快速提取

    針對嵌入式設(shè)備對視頻背景的實(shí)時(shí)提取問題,提出一種基于最近鄰域像素梯度( N2PG)穩(wěn)定性的視頻背景快速提取方法。首先,以視頻中任意幀作為初始背景,并計(jì)算此背景圖像的N2PG矩陣;然后,以背景幀之后
    發(fā)表于 12-14 15:58 ?1次下載

    圖像處理教程之圖像的鄰域操作資料說明

    輸出圖像中的每個(gè)像素值都是由輸入圖像中對應(yīng)的像素及其某個(gè)鄰域內(nèi)的像素共同決定的,這種圖像運(yùn)算稱為鄰域運(yùn)算。通常
    發(fā)表于 03-08 15:58 ?12次下載
    圖像處理教程之圖像的<b class='flag-5'>鄰域</b>操作資料說明

    layout和PCB的29個(gè)基本關(guān)系

    已經(jīng)解決措施,特別是 layout 工程師,需要了解如何避免臟點(diǎn)的擴(kuò)大,本文主要介紹了電源 PCB 設(shè)計(jì)的要點(diǎn)。 layout與PCB的29個(gè)基本關(guān)系 1、幾個(gè)基本原理:任何導(dǎo)線都是有阻抗的;電流總是自動(dòng)選擇阻抗最小的路徑;輻射強(qiáng)度和電流、頻率、回路面積有關(guān)
    的頭像 發(fā)表于 12-09 16:24 ?916次閱讀

    layout與PCB的29個(gè)基本關(guān)系資料下載

    電子發(fā)燒友網(wǎng)為你提供layout與PCB的29個(gè)基本關(guān)系資料下載的電子資料下載,更有其他相關(guān)的電路圖、源代碼、課件教程、中文資料、英文資料、參考設(shè)計(jì)、用戶指南、解決方案等資料,希望可以幫助到廣大的電子工程師們。
    發(fā)表于 03-31 08:44 ?7次下載
    layout與PCB的29個(gè)<b class='flag-5'>基本關(guān)系</b>資料下載

    一文弄懂激光器速率方程組及基本關(guān)系

    對一些簡化的、具有代表性的模型列出速率方程組,所謂的三能級和四能級系統(tǒng)。激光速率方程理論的出發(fā)點(diǎn)是原子的自發(fā)輻射、受激輻射和受激吸收概率的基本關(guān)系式。
    發(fā)表于 03-09 13:44 ?8495次閱讀

    干貨| 超全面!layout與PCB的29個(gè)基本關(guān)系,收藏這篇就夠了!

    layout與PCB的29個(gè)基本關(guān)系 1、幾個(gè)基本原理:任何導(dǎo)線都是有阻抗的;電流總是自動(dòng)選擇阻抗最小的路徑;輻射強(qiáng)度和電流、頻率、回路面積有關(guān);共模干擾和大 dv/dt 信號對地互容有關(guān);降低
    的頭像 發(fā)表于 10-22 21:38 ?1236次閱讀
    干貨| 超全面!layout與PCB的29個(gè)<b class='flag-5'>基本關(guān)系</b>,收藏這篇就夠了!

    OpenCV4筆記之連通域分析

    連通:若 S 是圖像中的一個(gè)像素子集,對于任意的 。如果存在一條由 S 中像素組成的從 p 到 q 的通路,則稱 p 在像素集 S 中與 q
    的頭像 發(fā)表于 12-25 17:16 ?981次閱讀
    OpenCV4筆記之<b class='flag-5'>連通</b>域分析

    二值圖像連通區(qū)域的標(biāo)記原理

    二值圖像是一種由黑白兩色組成的圖像,其像素值只有兩種可能,分別對應(yīng)黑色和白色。在二值圖像中,連通區(qū)域是指一塊相鄰的、像素值相同的區(qū)域。為了對二值圖像中的連通區(qū)域進(jìn)行分析和處理,我們需要
    的頭像 發(fā)表于 01-05 14:28 ?849次閱讀