s1091537 Homework #2

 1122 Digital Image Processing Assignment #2 報告

學號:s1091537 姓名:蔡佾家

主題:空間域濾波 - 邊緣偵測

專案目標:

    使用者可輸入任意一張圖像,程式會自動提取出重要的邊緣輪廓,並省略過於細節的部份,供小朋友學習。以下圖為例,程式提取出建築物、裝置藝術、樹木等的主要邊緣輪廓,但忽視掉建築物上的裝飾線條、樹葉的細部輪廓、草地的輪廓。

    本專案遭遇最大的困難是需要判斷出哪些輪廓是該忽視的,以及哪些是重要輪廓不能忽視。我透過輪廓密度決定模糊化的強度與迭代次數,使輪廓密度過高的部分(如樹葉、草地)進行更強模糊化,同時不模糊化密度較低的部分(如裝置藝術)以保留必要的輪廓。

開發平台:Microsoft Windows 11, Visual Studio Code, OpenCV 4.6.0, Python 3.7.9

主要概念說明:

1.    首先,我們調整輸入圖像的大小,接著轉換為灰階圖像,並進行灰階直方圖均化(Histogram Equalization)使後續提取輪廓的效果更佳。左圖為原始圖像,右圖為處理後的圖像。

2.     我們以Canny演算法提取出邊緣,使圖像從下面左方變為中間。接著,我們計算出每個像素周圍15*15範圍內共有幾個是邊緣的像素,得到一張代表密度的右圖。從下圖中可看出,邊緣最密集的紅圈處,在右方的密度圖上也最亮。

3.    我們選取密度前30%的像素進行高斯模糊,並回到步驟2繼續迭代。下方左圖為原圖,右圖為迭代5次後的圖像,對比可見,樹葉與草地部分被強烈的模糊化(因為他們密度很高,會被模糊化),但裝置藝術與建築的邊緣仍然保持清晰(因為他們密度較高,不會被模糊化)。

4.     在進行多次步驟2-3的選擇性模糊化後,我們就可以以Canny演算法取出經模糊化圖像的輪廓,成為最終結果。下圖由左至右為「經不同次數選擇性模糊化」的結果,越右邊選擇性模糊化的次數越多,而其效果也越好,可看出樹葉與草地的輪廓漸漸被清除。

成果展示與討論:

#範例1

#範例2

#範例3

#範例4

#額外範例

留言

這個網誌中的熱門文章

rzwang Homework #1

s1093350 Homework #2

s1061637 作業6