註:黑色字為在matlab中文論壇zhaoxch1983使用者帖中內容,詳情可看。紅色字部分為本人自己學習筆記內容。
基本概念一點通
從理論上講,映像是一種二維的連續函數,然而在電腦上對映像進行數文書處理的時候,首先必須對其在空間和亮度上進行數字化,這就是映像的採樣和量化的過程。空間座標(x,y)的數字化稱為映像採樣,而幅值數字化稱為灰階級量化。
對一幅映像採樣時,若每行(橫向)採樣數為M,每列(縱向)採樣數為N,則映像大小為M*N個像素, f(x,y)表示點(x,y) 處的灰階值,則F(x,y)構成一個M*N 實數矩陣
****************************
經驗分享:“像素”的英文為“pixel”,它是“picture”和“element”的合成詞,表示映像元素的意思。我們可以對“像素”進行如下理解:像素是一個面積概念,是構成數位影像的最小單位。
****************************
把採樣後所得的各像素灰階值從類比量到離散量的轉換稱為映像灰階的量化。量化是對映像幅度座標的離散化,它決定了映像的幅度解析度。(看到這我有這樣的疑問,什麼是類比量?什麼離散化?查了一下概念,在時間上或數值上都是連續的物理量稱為類比量。關於離散化的描述理解可以看我的另外一篇轉載文段http://www.cnblogs.com/ellisonDon/archive/2012/10/31/2747316.html)
量化的方法包括:分層量化、均勻量化和非均勻量化。分層量化是把每一個離散樣本的連續灰階值只分成有限多的層次;均勻量化是把原映像灰階層次從最暗至最亮均勻分為有限個層次,如果採用不均勻分層就稱為非均勻量化。
當映像的採樣點數一定時,採用不同量化級數的映像品質不一樣。量化級數越多,映像品質越好;量化級數越少,映像品質越差。量化級數小的極端情況就是二值映像。
****************************
經驗分享:“灰階”可以認為是映像色彩亮度的深淺。映像所能夠展現的灰階級越多,也就意味著映像可以表現更強的色彩層次。如果把黑——灰——白連續變化的灰階值量化為256個灰階級,灰階值的範圍為0~255,表示亮度從深到淺,對應映像中的顏色為從黑到白。
****************************
因此,對數位影像進行處理,也就是對特定的矩陣進行處理。在C語言中,對M×N數位影像處理的核心代碼如下:
for (j=1;j<N+1;j++)
for(i=1;i<M+1;i++)
{ 對I(i,j)的具體運算
};
在Matlab中,對M×N數位影像處理的核心代碼如下:
for i=1:N
for j=1:M
對I(i,j)的具體運算
end
end