1. 程式人生 > >影象處理基本知識

影象處理基本知識

1.影象處理方法分類

輸入 輸出 等級 例子
影象 影象 初級 降噪,增強對比度
影象 影象特徵 中級 輪廓提取
影象 影象表徵的資訊 高階 模式識別,機器視覺

2. 影象增強(image enhancement)

  1. 沒有統一的影象增強演算法,要針對具體問題具體分析,使用者是最終標準的評判者;使用者說好就是好,所以沒有所謂”最好 ”的影象增強演算法。

3. 畫素點之間的關係

這裡寫圖片描述

名稱 表示法 包括點
4鄰域(4-neightbors) N4(p) {2,4,5,7}
D鄰域(d-neightbors) ND
(p)
{1,3,6,8}
8鄰域(8-neightbors) N8(p) {1,2,3,4,5,6,7,8}

4. 鄰接(adjacency)、連通(connectivity)、區域(regions) 、邊界(boundaries)

4.1 鄰接

鄰接有的書上翻譯叫連線,其實是一個意思。這就體現了看英文資料的好處,沒有翻譯導致的奇異。
f(p)” role=”presentation” style=”position: relative;”>f

(p)f(p)全體值域的y一個子集,則

名稱 定義
4鄰接(4-adjacency) f(p)∈V∧f(q)∈V∧q∈N4(p)” role=”presentation” style=”position: relative;”>f(p)Vf(q)VqN4(p)f(p)∈V∧f(q)∈V∧q∈N4(p)
8鄰接(8-adjacency f(p)∈V∧f(q)∈V∧q∈N8(p)” role=”presentation” style=”position: relative;”>f(p)Vf(q)VqN8(p)f(p)∈V∧f(q)∈V∧q∈N8(p)
m鄰接(m-adjacency) 1.f(p)∈V∧f(q)∈V” role=”presentation” style=”position: relative;”>f(p)Vf(q)Vf(p)∈V∧f(q)∈V

m鄰接又稱為混合鄰接,其作用是為了消除8鄰接導致的多路問題。
為了解釋這個多路問題,需要引入路徑的概念。路徑(path)是一系列畫素點的集合,相鄰的倆個畫素點的關係要滿足一種鄰接的定義。比如4鄰接路徑,就表示路徑中相鄰兩個畫素點滿足4鄰接關係。8鄰接路徑、m鄰接路徑的定義與此類似。
假設V={1},則各種鄰接的路徑如下圖所示:
這裡寫圖片描述
可以看出8鄰接路徑存在多路的問題。

4.2 連通

設S為影象中部分畫素的集合
如果可以在S中找到一條路徑連線畫素點p和q,則稱p和q 在S中是連通的。自然,根據路徑選擇方法的不同,連通也應該分為4連通,8連通和m連通。
在S中,對於任意的畫素點p,所有與p點連通的畫素點的集合(包括p點)稱為一個連通元件。如果在S中只能找到一個連通元件,則稱S為連通集合

4.3 區域

影象中的一個連通集合也可以叫做一個區域。自然,依據使用的連通型別不同,區域也分為4連通區域,8連通區域(原則上講也應該有m連通區域,但在涉及區域的問題討論中很少應用m連通)。
如果兩個4連通區域可以合併為一個更大的4連通區域,則稱這兩個區域是4鄰接的。相應的,也存在8鄰接。
如果兩個型別相同的連通區域無法合併,則稱這兩個連通區域是不想交的(disjoint)。
ps:在同一副影象上劃分區域時,只會採用一種連通型別。要麼都是4連通的,要麼都是8連通的。不會出現我把影象的左邊劃分為4連通的,右邊劃分為8連通的情況。

4.4 前景(foreground)和背景(background)

假設在一副影象上有k個不想交的區域。
設Ru等於所有者k個區域的集合,(Ru)c等於影象上Ru以外的畫素點的集合。
則,Ru稱為影象的前景,(Ru)c稱為Ru的背景。(這個相對性很重要,背景是針對前景而言的)

4.5 邊界(boundary,border)

如果區域R中存在畫素點p,且p點的領域中至少有一個畫素點落在R的背景中,則R中所有這樣的點P組成的集合叫做區域R的邊界。
根據上面的定義,自然也存在4連通邊界和8連通邊界的說法。但更多使用的是8連通邊界,否則如下圖中紅圈圈出的點將不被認為是邊界,這很不自然。
這裡寫圖片描述
以上方式定義的區域的內邊界,響應的,在背景中與內邊界相鄰的點組成的集合稱為外邊界。

5. 距離

兩個畫素點間的距離計算方式,常見的有三種,定義如下:

De(p,q)=(p.x−q.x)2+(p.y−q.y)2” role=”presentation” style=”position: relative;”>De(p,q)=(p.xq.x)2+(p.yq.y)2De(p,q)=(p.x−q.x)2+(p.y−q.y)2

D4(p,q)=|p.x−q.x|+|p.y−q.y|” role=”presentation” style=”position: relative;”>D4(p,q)=|p.xq.x|+|p.yq.y|D4(p,q)=|p.x−q.x|+|p.y−q.y|

D8(p,q)=max(|p.x−q.x|,|p.y−q.y|)” role=”presentation” style=”position: relative;”>D8(p,q)=max(|p.xq.x|,|p.yq.y|)D8(p,q)=max(|p.x−q.x|,|p.y−q.y|)

6. gamma校正

6.1 gamma校正的定義

首先介紹一下變換函式

S=crγ” role=”presentation” style=”text-align: center; position: relative;”>S=crγS=crγ S = cr^\gamma
其中
r—某個畫素點的強度;
c—為嘗試;
γ” role=”presentation” style=”position: relative;”>γγ—為變換引數;
s—此畫素點變換後的強度;
利用以上公式對輸入影象的每個畫素點進行處理的過程稱為gamma校正。

6.2 gamma校正的作用

1.修復影象失真

下圖展示了一副自然界影象經電子裝置呈現在人眼上的過程
這裡寫圖片描述
如果自然界影象經過感測器直接轉化為數字影象時,會發生失真。這種失真是由於感測器硬體引起的,無法避免。經驗上可以將失真總結為如下的形式:

数字图像像素(x,y)=(自然界图像(x,y))α” role=”presentation” style=”text-align: center; position: relative;”>(x,y)=(x,y)α數字影象畫素(x,y)=(自然界影象(x,y))α 數字影象畫素(x,y) = (自然界影象(x,y))^\alpha
為了彌補這種失真,可以在步驟2增加一部gamma校正,即:
数字图像像素(x,y)=gamma校正((自然界图像(x,y))α)” role=”presentation” style=”text-align: center; position: relative;”>(x,y)=gamma((x,y)α)數字影象畫素(x,y)=gamma校正((自然界影象(x,y))α) 數字影象畫素(x,y) = gamma校正((自然界影象(x,y))^\alpha)
gamma校正(r)=r1α” role=”presentation” style=”text-align: center; position: relative;”>gamma(r)=r1αgamma校正(r)=r1α gamma校正(r) = r^\frac{1}{\alpha}
經過這樣的校正,數字影象和自然界影象就相同了。
可以看出,校正的關鍵是 α” role=”presentation” style=”position: relative;”>αα值的選擇。這個值一般由感測器的生成廠家根據自身產品的特點固化在感測器裡,對感測器的使用者來說,是不需要關係的。

2.增加對比度

下圖展示了不同γ” role=”presentation” style=”position: relative;”>γγ下,輸入與輸出的關係
這裡寫圖片描述
可以看出當&#x03B3;&lt;1” role=”presentation” style=”position: relative;”>γ<1γ<1時,會增強原影象中暗處的對比度;
可以看出當&#x03B3;==1” role=”presentation” style=”position: relative;”>γ==1γ==1時,無任何效果;
可以看出當&#x03B3;&gt;1” role=”presentation” style=”position: relative;”>γ>1γ>1時,會增強原影象中亮處的對比度;
但是對強度的影響是非線性的。

7. 灰度分層(intensity-level slicing)

8.Bit平面分層(bit-plane slicing)

概念上比較抽象,舉個例子來理解。
假設每一個畫素點由2bit組成,一副影象有4個畫素點。則如下圖所示,影象1可以由影象2和影象3疊加而來。
這裡寫圖片描述
那麼,影象2和影象3就是影象1的兩個bit平面。
同理可以推斷出,如果每個畫素點由8個bit組成,則一副影象應該有8個bit平面。
bit平面分層可以用於影象的有失真壓縮,通過這種分析你可以發現,有些bit平面對影象的貢獻是很小的,刪除這一層的資料,人眼是無法分辨的,但這樣就節約了空間以及傳輸的資料量。

9.直方圖(histogram)處理

1.影象的直方圖

影象的直方圖實際上就是影象不同強度的畫素點的概率分佈圖。
假設一副8bit影象(8bit影象指影象的每個畫素點用8bit長度的資料表示,共可以表示0~255,共計256個強度)有M*N個畫素點。
令n255表示強度的255的點,在影象中的數量,則此影象強度為255的概率可根據如下公式計算:

P255=n255M&#x2217;N” role=”presentation” style=”text-align: center; position: relative;”>P255=n255MNP255=n255M∗N P_{255} = \frac{n_{255}}{M*N}
同理可以計算出P 0~P 255的值,然後以強度為x軸,概率為y軸繪製的直方圖,就是此影象的直方圖。
通過影象的直方圖可以看出以下幾點結論:
1. 影象亮度較暗,則直方圖集中在x軸的左側;
2. 影象亮度較亮,則直方圖集中在x軸的右側;
3. 影象對比度較低,則直方圖集中在某個很小的範圍內;
4. 影象對比度較高,則直方圖均勻分佈在整個x軸。

2.直方圖均衡

根據上一節的結論4,“影象對比度較高,則直方圖均勻分佈在整個x軸”。我們可以將一個對比度較低的影象,通過某種變化,使其直方圖均勻分佈,這樣就可以增進對比度。這其中最簡單的演算法是“直方圖均衡”。
s=T(r)” role=”presentation” style=”position: relative;”>s=T(r)s=T(r)是連續可微函式,則有如下結論:

Ps(s)=Pr(r)|drds|” role=”presentation” style=”text-align: center; position: relative;”>Ps(s)=Pr(r)drdsPs(s)=Pr(r)|drds| 必須是 “連續可微”函式。
基於以上的結論,我們可以構造如下的轉換函式:
T(r)=(N&#x2212;1)&#x222B;0rPr(w)dw” role=”presentation” style=”text-align: center; position: relative;”>T(r)=(N1)r0Pr(w)dwT(r)=(N−1)∫0rPr(w)dw
基於以上構造的轉換函式,我們很容易計算出 Ps(s)=1N&#x2212;1” role=”presentation” style=”text-align: center; position: relative;”>Ps(s)=1N1Ps(s)=1N−1 ,即轉換後,所有的畫素點的概率分佈為常數,對比度最大。

3.自由選擇輸出影象的概率密度函式

上一節中構造的轉換函式,轉換後圖像的概率密度是常數。這在多數情況下已經足夠好,但有時我們希望自由選擇輸出影象的概率密度函式。
下面直接介紹演算法:
1. 令變換後的概率密度函式為Pz(z)” role=”presentation” style=”position: relative;”>Pz(z)Pz(z);
2. 令s1=(N&#x2212;1)&#x222B;0zPz(w)dw” role=”presentation” style=”position: relative;”>s1=(N1)z0Pz(w)dws1=(N−1)∫0zPz(w)dw
3. 由於Pr(r)” role=”presentation” style=”position: relative;”>Pr(r)Pr(r)的對應關係表;
4. 由於Pz(z)” role=”presentation” style=”position: relative;”>Pz(z)Pz(z)的對應關係表;
5. 基於以上幾點可知,當有一個輸入r” role=”presentation” style=”position: relative;”>rr,即完成了變換。

        <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/markdown_views-ea0013b516.css">
            </div>

1.影象處理方法分類

輸入 輸出 等級 例子
影象 影象 初級 降噪,增強對比度
影象 影象特徵 中級 輪廓提取
影象 影象表徵的資訊 高階 模式識別,機器視覺

2. 影象增強(image enhancement)

  1. 沒有統一的影象增強演算法,要針對具體問題具體分析,使用者是最終標準的評判者;使用者說好就是好,所以沒有所謂”最好 ”的影象增強演算法。

3. 畫素點之間的關係

這裡寫圖片描述

名稱 表示法 包括點
4鄰域(4-neightbors) N4(p) {2,4,5,7}
D鄰域(d-neightbors) ND(p) {1,3,6,8}
8鄰域(8-neightbors) N8(p) {1,2,3,4,5,6,7,8}

4. 鄰接(adjacency)、連通(connectivity)、區域(regions) 、邊界(boundaries)

4.1 鄰接

鄰接有的書上翻譯叫連線,其實是一個意思。這就體現了看英文資料的好處,沒有翻譯導致的奇異。
f(p)” role=”presentation” style=”position: relative;”>f(p)f(p)全體值域的y一個子集,則

名稱 定義
4鄰接(4-adjacency) f(p)&#x2208;V&#x2227;f(q)&#x2208;V&#x2227;q&#x2208;N4(p)” role=”presentation” style=”position: relative;”>f(p)Vf(q)VqN4(p)f(p)∈V∧f(q)∈V∧q∈N4(p)
8鄰接(8-adjacency f(p)&#x2208;V&#x2227;f(q)&#x2208;V&#x2227;q&#x2208;N8(p)” role=”presentation” style=”position: relative;”>f(p)Vf(q)VqN8(p)f(p)∈V∧f(q)∈V∧q∈N8(p)
m鄰接(m-adjacency) 1.f(p)&#x2208;V&#x2227;f(q)&#x2208;V” role=”presentation” style=”position: relative;”>f(p)Vf(q)Vf(p)∈V∧f(q)∈V

m鄰接又稱為混合鄰接,其作用是為了消除8鄰接導致的多路問題。
為了解釋這個多路問題,需要引入路徑的概念。路徑(path)是一系列畫素點的集合,相鄰的倆個畫素點的關係要滿足一種鄰接的定義。比如4鄰接路徑,就表示路徑中相鄰兩個畫素點滿足4鄰接關係。8鄰接路徑、m鄰接路徑的定義與此類似。
假設V={1},則各種鄰接的路徑如下圖所示:
這裡寫圖片描述
可以看出8鄰接路徑存在多路的問題。

4.2 連通

設S為影象中部分畫素的集合
如果可以在S中找到一條路徑連線畫素點p和q,則稱p和q 在S中是連通的。自然,根據路徑選擇方法的不同,連通也應該分為4連通,8連通和m連通。
在S中,對於任意的畫素點p,所有與p點連通的畫素點的集合(包括p點)稱為一個連通元件。如果在S中只能找到一個連通元件,則稱S為連通集合

4.3 區域

影象中的一個連通集合也可以叫做一個區域。自然,依據使用的連通型別不同,區域也分為4連通區域,8連通區域(原則上講也應該有m連通區域,但在涉及區域的問題討論中很少應用m連通)。
如果兩個4連通區域可以合併為一個更大的4連通區域,則稱這兩個區域是4鄰接的。相應的,也存在8鄰接。
如果兩個型別相同的連通區域無法合併,則稱這兩個連通區域是不想交的(disjoint)。
ps:在同一副影象上劃分區域時,只會採用一種連通型別。要麼都是4連通的,要麼都是8連通的。不會出現我把影象的左邊劃分為4連通的,右邊劃分為8連通的情況。

4.4 前景(foreground)和背景(background)

假設在一副影象上有k個不想交的區域。
設Ru等於所有者k個區域的集合,(Ru)c等於影象上Ru以外的畫素點的集合。
則,Ru稱為影象的前景,(Ru)c稱為Ru的背景。(這個相對性很重要,背景是針對前景而言的)

4.5 邊界(boundary,border)

如果區域R中存在畫素點p,且p點的領域中至少有一個畫素點落在R的背景中,則R中所有這樣的點P組成的集合叫做區域R的邊界。
根據上面的定義,自然也存在4連通邊界和8連通邊界的說法。但更多使用的是8連通邊界,否則如下圖中紅圈圈出的點將不被認為是邊界,這很不自然。
這裡寫圖片描述
以上方式定義的區域的內邊界,響應的,在背景中與內邊界相鄰的點組成的集合稱為外邊界。

5. 距離

兩個畫素點間的距離計算方式,常見的有三種,定義如下:

De(p,q)=(p.x&#x2212;q.x)2+(p.y&#x2212;q.y)2” role=”presentation” style=”position: relative;”>De(p,q)=(p.xq.x)2+(p.yq.y)2De(p,q)=(p.x−q.x)2+(p.y−q.y)2

D4(p,q)=|p.x&#x2212;q.x|+|p.y&#x2212;q.y|” role=”presentation” style=”position: relative;”>D4(p,q)=|p.xq.x

相關推薦

數字影象處理基本知識(三)

一、影象訊號的數學表示 1、訊號的分類 訊號的分類   連續的模擬訊號,經過取樣轉化為取樣訊號,最後要根據A/D變換量化才能處理為數字訊號。 模擬訊號和數字訊號的轉換  這時,便會出現一個問題:訊號形式的變化,會不會引起訊號所表示的資訊的變化呢?      

影象處理基本知識架構梳理

本人之前一直做的是slam相關的工作,知識接觸的有一些零零碎碎的。介於個人愛好,打算開始好好整理一下影象處理方面的知識理論,有需要的小夥伴,大家一起探討學習吧!如有問題,歡迎指出喲! 以下是從南山之暮塵博主那裡整理過來的目錄,以後我會在每個目錄的後面進行相關知識的整理,並附上鍊接 影象畫素操

影象處理基本知識

1.影象處理方法分類 輸入 輸出 等級 例子 影象 影象 初級 降噪,增強對

數字影象處理基本知識

1、數字影象: 數字影象,又稱為數碼影象或數點陣圖像,是二維影象用有限數字數值畫素的表示。數字影象是由模擬影象數字化得到的、以畫素為基本元素的、可以用數字計算機或數位電路儲存和處理的影象。 2、數字影象處理包括內容: 影象數字化;影象變換;影象增強;影象恢復;影象壓縮編碼

Open CV學習記錄(二十二)—影象處理基本知識

Mat 的初始化可以使用複製建構函式或者賦值運算子,不進行儲存畫素值的矩陣複製,只複製矩陣頭。 clone()和copyTo進行整體複製。 設定某部分割槽域,可以使用Rect或Range HSV把顏色分解成色調、飽和度和亮度,拋棄最後一個元素,使演算法對輸

圖像處理基本知識總結(二)

空間 彩色 最終 圖像處理 邊緣 不同的 byte 一個 分析法 筆試題知識點 1、存儲一副大小為1024×1024,256個灰度的圖像,需要(8M)byte。 256是2的8次方,即8位,8個bit,1個字節;等於1024*1024*8 (bit)=8M(bit)。 2、

影象處理基本概念筆記(7)

七、 119、影象處理方法 影象處理技術就是利用計算機、攝像機及其他數字處理技術對影象施加某種運算和處理,以提取影象中的各種資訊,從而達到某種特定目的的技術。 影象處理技術具有再現性好、精度高、適用面寬等特點。現有影象處理方法包括點運算、濾波、全域性優化、幾何變換等 ,應用十分廣泛。

影象處理基本概念筆記(8)

作者:cvvision 連結:http://www.cvvision.cn/8935.html 八、 120、影象數字化 影象數字化是將一幅畫面轉化成計算機能處理的形式——數字影象的過程。 模擬影象     數字影象   &nb

影象處理基本概念筆記(6)

六、 116、機器視覺選擇合適工業相機 1.應用不同選用CCD或CMOS CCD工業相機主要應用在運動物體的影象提取,如貼片機機器視覺,當然隨著CMOS技術的發展,許多貼片機也在選用CMOS工業相機。用在視覺自動檢查的方案或行業中一般用CCD工業相機比較多。 CMOS工業相機由成本低,功

影象處理基本概念筆記(5)

作者:cvvision 連結:http://www.cvvision.cn/8935.html 五、 86、去噪 PGI以並行而不是順序進行的方式執行將原始影象處理為最終顏色影象所需的所有計算步驟,這樣就可以避免過度放大噪聲。 噪聲是任何影象不可避免的部分,它有幾個來源,包括光子散粒噪聲、影象

影象處理基本概念筆記(4)

作者:cvvision 連結:http://www.cvvision.cn/8912.html 來源:CV視覺網 四、 42、1080p 1080p 是簡寫形式專業術語,表示一套 HDTV 裝置的特點是 1080 條水平線解析度和逐行掃描。 1080p 是簡寫形式專業術語,表示一套 HDTV

影象處理基本概念筆記(3)

著作權歸作者所有。 商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。 作者:cvvision 連結:http://www.cvvision.cn/8910.html 來源:CV視覺網 三、 31、機器視覺基本功能 測量、定位、識別、檢測 32、英寸 1英寸=25.4 mm 但是在CCD中間

影象處理基本概念筆記(2)

作者:cvvision 連結:http://www.cvvision.cn/8907.html 二、 22、均值濾波 均值濾波是典型的線性濾波演算法,它是指在影象上對目標畫素給一個模板,該模板包括了其周圍的臨近畫素(以目標象素為中心的周圍8個畫素,構成一個濾波模板,即去掉目標畫素本身),再用模

影象處理基本概念筆記(1)

轉載作者:cvvision 連結:http://www.cvvision.cn/8908.html 一、 0、HSV HSV (Hue, Saturation, Value)顏色的引數分別是:色調(H),飽和度(S),明度(V)。 根據顏色的直觀特性建立的一種顏色空間, 也稱六角錐體模型(Hexco

MATLAB數字影象處理基本操作函式

影象讀取:I = imread('mao.jpg'); 影象顯示:imshow(I) 彩色轉灰度:I = rgb2gray(I); 影象縮放:X1 = imresize(I,2);%放大兩倍 影象旋轉:B = imrotate(A,angle); 插值: 1、最

opencv影象處理基本操作addWeighted

beta = ( 1.0 - alpha ); addWeighted( src1, alpha, src2, beta, 0.0, dst); 1、src1,輸入圖片1, 2、alpha,圖片1的融合比例 3、src2,輸入圖片2 4、beta,圖片2的融合比

opencv影象處理基本操作_直方圖比較

compareHist(hist_base, hist_test1, CV_COMP_CORREL);//相關性比較 compareHist(hist_base, hist_test1, CV_COMP_CHISQR);//卡方比較 compareHist(hist_base

opencv影象處理基本操作goodFeaturesToTrack

    goodFeaturesToTrack(gray_src, corners, max_corners, qualityLevel, minDistance, Mat(), blockSize=3, useHarris, k); 第一個引數src:8位或32位單通道灰

opencv影象處理基本操作cornerEigenValsAndVecs

void cvCornerEigenValsAndVecs( const CvArr* image, CvArr* eigenvv,int block_size, int aperture_size=3 ) image 輸入影象. eigenvv 儲存結果的陣列。必須

影象處理基礎知識筆記

一、噪聲 1.噪聲產生的原因:感測器源的質量、光照的影響、質量的影響 2.加性噪聲:與訊號關係相加 3.乘性噪聲:與訊號關係相乘,與信噪比有關,隨機性是變性 白噪聲:功率譜在整個頻域內分佈的噪聲 高斯噪聲:呈高斯型 二、濾波 eg:利用矩形框低通濾波器來濾波