範例:歐氏距離轉換
使用
distform 函數計算矩陣
M 的歐氏距離轉換,考慮使用值為
fg 的像素作為前景像素。
如需使用此範例的資訊,請參閱
<關於圖像處理範例>。
圖像矩陣
1. 定義圖像矩陣,並套用 distform。
每個輸出像素的值是到最接近的輸入前景 (值 100) 像素之距離:
◦ 若是輸入前景像素,輸出距離會為零
◦ 若是水平與垂直鄰點,則距離為 1
◦ 若是對角鄰點,則距離為 2 的平方根或 1.414
含有一個非零像素的圖像
1. 定義含有一個非零像素的圖像。
2. 將 distform 套用至圖像:
隨著遠離輸入圖像的前景像素 (中心像素),距離會單調遞增。
距離轉換產生近似歐氏距離。在上例中,您會看到矩陣位置 (0,1) 的精確歐氏距離轉換輸出應為:
但在我們的輸出圖像中,該值為 5.243。
圓形物件的圖像
1. 定義圓形圖像:
4. 將 distform 函數套用至圓、加以縮放,然後將結果儲存至新檔案。
5. 從兩個檔案插入圖像,並比較結果。
圓內所有點的距離值皆為零,並隨著外移單調遞增,但這些值不會完全等於歐氏距離,否則輸出會呈放射對稱。
單一物件的兩個二進位圖像
1. 讀取圖像。
3. 從三個檔案插入圖像,並比較結果。
| | |
(flower.bmp) | (flower_d2.bmp) | (flower_d3.bmp) |
4. 使用 distform 函數計算 D1 的距離轉換。
5. 使用函數
mask 與
mean,以圖像
D2 與
D3 遮罩距離轉換圖像,並計算整個圖像的均數。這表示兩個圖像之間的距離量測。
D1 與 D1 之間的距離為零,而 D1 與其他圖像之間的距離會隨轉換度而增加。
6. 計算 Hausdorff 距離
Hausdorff 距離會定義為兩個集合中各點之間最接近距離的最大值。若要計算兩個圖像之間的 Hausdorff 距離,請使用
max 函數而非函數
mean。
兩個邊緣圖像
您可以計算兩個邊緣圖像之間的距離,以比較邊緣檢測器的效能。使用遮罩距離的均數或最大值作為邊緣距離的量測。
3. 插入並目視比較兩個圖像。
| |
(lena_e1.bmp) | (lena_e2.bmp) |
4. 計算邊緣之間的整體距離。