計算機內是離散的處理數字
把連續圖像(如人眼看到的圖像就是連續的)轉化為數字圖像:數字圖像可用二維數組存放,也即把圖像光柵化了。
圖像的坐標(x, y),圖像的強度,幅度或灰度 f(x, y)。
圖像的坐標和幅度可能是連續的,數字化坐標稱為取樣,數字化幅度稱為量化(離散的灰度值,如RGB 255 << 16 + 255 << 8 + 255種)。
一行沿水平方向從左到右對圖像等間隔對圖像取樣,得到幅度的值,可畫出一維曲線函數圖,幅度值的隨機變化是由圖像噪聲引起的。
一行一行的從上到下對圖像取樣,量化,最后得到存儲在二維數組里的數字圖像。取樣和量化的結果是一個實際的矩陣。也即為什么圖像
都是方形的。
數字圖像的質量很大程度上取決于取樣和量化中所使用的取樣數和灰度級。
1. 簡單的圖像抽樣(灰度級保持不變),從原圖像中刪去一樣的行和列1024*1024 -> 512*512 -> 256*256 -> 64*64 -> 32*32,從大到小,很難看出抽樣帶來的影響。但如果把抽樣后的圖像復制行和列恢復到1024*1024大小后,就看出影響來了,出現小方塊,圖像不自然。這也是nearst的filter。
2. 取樣數恒定,但灰度值以2的冪次數降低。
取樣和量化是針對連續圖像。
放大和縮小可用于數字圖像。
簡單的放大和縮?。?00×500 -> 750*750
在原始圖像上虛構一個750*750的柵格,顯然柵格的間隔小于1個像素。為了對覆蓋層上的任何點進行灰度賦值,在原始圖像上尋找最靠近
的像素并把它的灰度值賦給柵格上的像素:稱為最鄰近域內插法。
尋找最鄰近域:
array[y][x];
if (((float)x / 1.5 - 0.5) < 0.0)
return floor((float)x / 1.5);
else return ceil((float)x / 1.5);
整數倍擴大與縮小時可以使用像素復制法與刪除法。
優點:速度快
缺點:馬塞克,特別是放大時
稍微改進一點的方法:采用4個最鄰近點的雙線性內插:還可以采用更多鄰近點的插值(更平滑)
v(x', y') = ax' + by' + cx'y' + d;
4個系數由點(x', y')的4個最鄰近點寫出的4個未知方程決定。
垂直和水平的4個鄰近點:(x-1, y), (x+1, y), (x, y-1), (x, y+1)
對于通常數字圖像的放大和收縮,雙線性內插法首選,效果不錯,計算量不大。
兩個像素的連通性:它們是否相鄰,這們的灰度值是否滿足特定的相似性準則(比如相等,相差不大)。
距離度量:p(x, y), q(s, t)
1. 歐氏距離:D(p, q) = squrt((x-s)*(x-s) + (y-t)*(y-t)); 以(x, y)為圓心r為半徑的圓平面
2. 城市街區距離:D(p, q) = |x-s| + |y-t|; 以(x, y)為中心的菱形 D == 1(4鄰域)
3. 棋盤距離:D(p, q) = max(|x-s|, |y-t|); 以(x, y)為中心的方形 D == 1(8鄰域)
線性與非線性操作:
兩幅圖像f和g與級兩個標題a和b關系如下 ,則H稱為線性算子:
H(a*f + b*g) = a*H(f) + b*H(g)
線性算子在圖像處理中非常重要,是充分了解理解和實踐的主要基礎。
對K幅圖像的求和是一個線性算子,計算兩幅圖像的差分絕對值的算不是線性算子。