2022年3月21日 星期一

s1073328 作業3

  

    1. 作業說明:


    • 線條自畫像(二值化與邊緣偵測 Image Thresholding and Edge Detection)

                    撰寫程式以灰階模式圖取圖片。

                    (a) 利用Sobel Operators偵測並輸出邊緣成分圖。
                    (b) 設計一個類似素描線條的自畫像圖案。


    2. 開發環境:


    • Windows 10

    • Visual Studio 2017

    • OpenCV 4.5.5

    3. 程式流程:


  • 首先,輸入圖片完整路徑及名稱。利用imread(path, IMREAD_GRAYSCALE)以灰階模式讀取圖片。

                    👉 若是讀取失敗,將跳出提示,並結束程式。

  • 接著,使用GaussianBlur()函數對其圖片進行模糊處理,如此作原因在於減少圖像中的噪音(Noise)。在邊緣檢測中必須計算像素強度(pixel intensity)的數值導數,這通常會導致噪音邊緣,也就是圖像中相鄰像素的強度(尤其是靠近邊緣)可能會有很大的波動,從而產生不是我們要的邊緣結構結果。模糊可平滑邊緣附近的強度變化,進而更容易識別圖像中的主要邊緣結構。

  • 利用Sobel()函數進行邊緣偵測。先個別計算出針對X方向及Y方向的一階導數Sobel圖像。再利用addWeighted()將上述得到的兩張圖像融合,最後生成此圖像的邊緣成分圖。

  • 用Sobel Operators偵測得到的邊緣成分圖就類似素描的線條感,因此只需利用黑白顏色互換,進而產生白底黑線的似素描圖像。

  • 最終,利用imshow()將原始圖(彩色)、灰階圖像、邊緣成分圖以及似素描圖像呈現出來,供使用者作比較。



    4. 執行結果:


    • 結果1: 自畫像(老師給的人物圖像為範例)

    原始圖像


    以灰階讀取圖像


    Sobel僅針對X軸


    Sobel僅針對Y軸


    Sobel針對X、Y軸


    素描線條圖



實作影片





    • 結果2: 複雜線條圖片

    原始圖片

    以灰階讀取圖像


    邊緣成分圖


    似素描圖



    • 結果3: 風景圖

    原始圖片

    以灰階讀取圖像


    邊緣成分圖


    似素描圖

沒有留言:

張貼留言