s1091540 作業1

開發環境:

Windows 11 + Visual Studio 2022 + OpenCV 4.7.0(C++)

程式功能:

輸入字元a(旋轉整張圖片)或b(旋轉中心內切圓),自動開啟視窗(包含滑動條及圖片),透過滑動條控制圖片旋轉角度,在滑動條下方顯示對應效果,手動關閉視窗後可不斷再次輸入,若輸入a跟b以外的字元則結束程式。

程式片段:

main( ):

  1. imread( ):讀取圖片
  2. namedWindow( )開啟視窗
  3. imshow( ):顯示圖片
  4. createTrackbar( ):新增滑動條
  5. waitKey( ):讓視窗維持開啟

rotate_a( ):

  1. 計算圖片中心點
  2. getRotationMatrix2D( ):依照中心點及角度建立旋轉矩陣
  3. warpAffine( ):進行圖片旋轉
  4. imshow( ):顯示旋轉後的圖片

rotate_b( ):

  1. 建立mask1
  2. circle( ):在mask1上挖出白色圓圈
  3. 建立mask2
  4. bitwise_not( ):利用mask1製作與其相反的mask2
  5. copeTo( ):以mask1製作im1(內切圓部分)
  6. copeTo( ):以mask2製作im2(內切圓以外部分)
  7. 計算圖片中心點
  8. getRotationMatrix2D( ):依照中心點及角度建立旋轉矩陣
  9. warpAffine( ):進行內切圓部分圖片旋轉
  10. add( ):將im1與im2疊加,合成一張圖片
  11. imshow( ):顯示合成後的圖片

執行結果:

(a)旋轉整張圖片

(b)旋轉中心內切圓

執行過程:




留言

這個網誌中的熱門文章

rzwang Homework #1

s1093350 Homework #2

s1081444 Homework #7