s1093340 作業2

 一、作業說明

撰寫一個程式,以灰階模式讀取一張圖像 imread(path, IMREAD_GRAYSCALE) (a)利用 Sobel Operators 偵測並輸出邊緣成分圖 (b)設計一個類似素描線條的自畫像圖案。(想想:如何使用邊緣偵測所得到的點,結合 成看似素描筆畫出的線條?)




 二、開發環境

OS: Windows 11
Editor: Visual Studio Code
Compiler: GCC-12.2.0(MinGW-W64)
Language: C++
Package: OpenCV-4.6.0 

 三、程式功能

  1. 執行方式
    • 使用argv將要旋轉之圖片路徑傳入,可使用cmd執行或者直接將圖片拖曳至exe檔上面執行
      圖片拖曳執行

      使用cmd執行

  2. 查看執行結果
    • image視窗為輸入圖片轉灰階
    • sobel_img視窗為利用 Sobel Operators 偵測並輸出邊緣成分圖
    • sketch視窗為類似素描線條的自畫像圖案
      image視窗
      sobel_img視窗
      sketch視窗
  3. 結束程式
    • 要離開程式時,按下鍵盤上任意鍵結束執行

 四、實作過程

  1. 整張圖像使用灰階讀入
  2. 用Sobel計算X軸、Y軸梯度
    X軸梯度

    Y軸梯度

  3. 用addWeighted將X軸、Y軸梯度相加得到邊緣成分圖
    邊緣成分圖

  4. 用bitwise_not對邊緣成分圖做負片
    成分圖負片

  5. 用GaussianBlur平去除成分圖負片背景雜訊
    高斯模糊結果

  6. 歷遍每個pixel把低於225的顏色改為90,其餘設為255,模擬素描效果
    模擬素描成果

留言

這個網誌中的熱門文章

rzwang Homework #1

s1093350 Homework #2

s1061637 作業6