s1091540 作業1
開發環境:
Windows 11 + Visual Studio 2022 + OpenCV 4.7.0(C++)
程式功能:
輸入字元a(旋轉整張圖片)或b(旋轉中心內切圓),自動開啟視窗(包含滑動條及圖片),透過滑動條控制圖片旋轉角度,在滑動條下方顯示對應效果,手動關閉視窗後可不斷再次輸入,若輸入a跟b以外的字元則結束程式。
程式片段:
main( ):
- imread( ):讀取圖片
- namedWindow( ):開啟視窗
- imshow( ):顯示圖片
- createTrackbar( ):新增滑動條
- waitKey( ):讓視窗維持開啟
rotate_a( ):
- 計算圖片中心點
- getRotationMatrix2D( ):依照中心點及角度建立旋轉矩陣
- warpAffine( ):進行圖片旋轉
- imshow( ):顯示旋轉後的圖片
rotate_b( ):
- 建立mask1
- circle( ):在mask1上挖出白色圓圈
- 建立mask2
- bitwise_not( ):利用mask1製作與其相反的mask2
- copeTo( ):以mask1製作im1(內切圓部分)
- copeTo( ):以mask2製作im2(內切圓以外部分)
- 計算圖片中心點
- getRotationMatrix2D( ):依照中心點及角度建立旋轉矩陣
- warpAffine( ):進行內切圓部分圖片旋轉
- add( ):將im1與im2疊加,合成一張圖片
- imshow( ):顯示合成後的圖片
留言
張貼留言