s1093336 作業1

 

一、作業說明

撰寫一個程式將一張圖像的(a)整張圖像,(b)中心內切圓區域,旋轉一個角度(逆時針旋 轉 0 度至 359 度):利用一個滑動條(trackbar)控制旋轉角度。



 二、開發環境

OS: Windows 11 64bit
Editor: Visual Studio 2019
Language: C++
Package: OpenCV-4.5.0 

 三、程式功能

  1. 執行方式
    • 直接執行本程式
      執行設定

  2. 選擇旋轉模式
    1. Normal Rotate Mode:整張圖像旋轉
    2. Circle Rotate Mode:僅中心內切圓區域圖像旋轉
      選擇模式
  3. 調整旋轉角度
    • 拖曳上方Trackbar調整選轉的角度
      透過Trackbar控制圖像旋轉的角度

  4. 結束程式
    • 按下任意按鍵離開程式時。

 四、實作過程

  1. 整張圖像旋轉
    1. 利用圖像長寬,分別除2取得圖像中心點位置。
    2. 使用getRotationMatrix2D函式取得旋轉的矩陣。
    3. 使用warpAffine函式對原圖進行旋轉。
      執行成果示意圖

      主要程式

  2. 中心內切圓區域旋轉
    1. 利用圖像長寬,分別除2取得圖像中心點位置。
    2. 利用圖像長寬較短者作為內切圓直徑,並除2取得半徑長度。
    3. 畫出外部圖像遮罩。
      畫圓程式

      畫出的遮罩

    4. 將遮罩與原圖像進行bitwise_and取得下圖。
      結果

    5. 將步驟三的遮罩進行,XOR使黑白反過來,作為旋轉中心圓的遮罩。
      畫出的遮罩

    6. 將遮罩與旋轉後的圖像進行bitwise_and取得下圖。
      結果

    7. 將步驟四與步驟六的結果進行add疊加。就可以達成完整成果。
      完整結果

五、Demo




留言

這個網誌中的熱門文章

rzwang Homework #1

s1093350 Homework #2

s1061637 作業6