2021年3月20日 星期六

s1071530 影像處理作業 2

作業說明 :

        撰寫一個程式,讀取一張 256 色灰階圖像或 RGB 全彩圖像(.bmp 或.jpg 圖像格式都可, 如全彩圖像可先將圖片由 RGB 轉換至灰階影像),利用 Sobel Operators 圖像邊緣為基 礎,設計一個類似素描線條自畫像程式。(如果可以分析邊緣偵測所得到的點,結合成 線條方式呈現更佳!)


使用環境:

      window10

        python 3.9

        numpy 1.18.5

        opencv-python 4.4.0.46


方法:

        1. 以灰階格式讀取圖片為img_gray

           2. 將讀取的圖片img_gray  copy一份存為 img_result 

           3. 建立sobel_x :  -1  0  1               sobel_y :  -1  -2  -1

                                        -2  0  2                                0   0   0

                                        -1  0  1                                1    2   1

               sobel_x為測x方向的mask

               sobel_y為測y方向的mask

           4. img_gray除了邊緣pixel,每一個pixel都跟其鄰近的8個pixel一起與

               sobel_x、sobel_y做convolution。

               假設迴積後的2個值叫做 x和y,我們要的結果是 (x^2+y^2)^(1/2) = z。

               給定一個threshold,如果z >= threshold,便在img_result其對應的

               pixel填上0(即認定此pixel為邊緣),否則填上255。


           5. 將結果存成圖片

 

執行結果:

        原圖:



      threshold = 25



        threshold = 37



     threshold = 50



       threshold = 75



      threshold = 100




沒有留言:

張貼留言