s1101327 Homework #2
1122 Digital Image Processing Assignment #2 報告
學號:1101327 姓名:柯翔崴
主題:資料夾內多圖像邊緣偵測
專案目標:
為了讓使用者在選取圖像上和提取圖像中的邊緣更為方便,撰寫一個OpenCV、搭配Tkinter的程式讀取資料夾內多張圖像。可以按下鍵盤上的S儲存成一張提取完圖像邊緣的二值圖像,作為幼稚園學生認識線條的教材,並讓學生更了解元智建築物線條的美麗。同時藉由鍵盤上的A和D或空白鍵來達到讀取上一張和下一張圖像的效果,在切換至下一張圖片時,可以預覽其邊緣提取之效果,按下S則儲存圖像的輪廓圖檔,按下ESC則退出程式。
開發平台:Microsoft Windows 10, Visual Studio Code, OpenCV 4.9.0, tk 0.1.0, numpy
1.16.4, Python 3.9.18
程式架構與功能說明:
Assignment1資料夾內含有code、image、res等資料夾,code為存放此專案的程式碼(main.py);image內放入所有想處理的圖像檔;res為存放提取邊緣後的圖像檔。
執行前可以先在預設好的環境內輸入“pip install -r requirements.txt” 載入此專案所需要的package。
程式主要為對圖像進行兩次的高斯模糊,將圖像進行模糊化來達到邊緣保留的效果,以便後續的圖像處理。
接著,利用Canny演算法來提取模糊化圖像的邊緣,這部分調用了許多閾值,並選取提取邊緣效果最好的閾值來進行處理,而其結果可以看到樹葉與草地的輪廓被清除,並保留了建築物的輪廓。
成果展示與討論:
首先,程式會打開一個檔案對話框,讓使用者選擇要讀取的資料夾,該資料夾中包含所有要處理的圖像檔。
使用者可以利用輕按特定鍵盤來達到預設效果。A/空白鍵: 上一張; D: 下一張圖像來進行多圖像的編輯(yzu4.jpg下一張為yzu1.jpg); S: 儲存完成提取邊緣的圖像檔到特定資料夾中。
範例一:
範例二:
範例三:
範例四:
留言
張貼留言