s1091550 作業1

 題目敘述:

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

開發環境:

  • Window 10
  • Visual Studio 2019 C++
  • OpenCV 4.2.0

步驟說明:

1.    主程式先將圖片以imread()讀入,並以empty()確認有正確讀取。
2.    列印出選單使使用者在兩個功能間做選擇。並利用namedWindow()創建顯示視窗,以createTrackbar()建立對應滑動條。

甲、如選(a) 整張圖像,則執行自定義part1()函式:

  •  指定中心點。
  •  getRotationMatrix2D()取得旋轉矩陣。
  •  warpAffine()根據旋轉矩陣進行仿射變換。
  •  imshow()顯示依照滑動條數值進行旋轉之圖片。

乙、如選(b)中心內切圓區域,則執行自定義part2()函式:  

  • 建立兩張與輸入圖像一樣大小之圖像 。
  • 指定中心點。
  • 雙層for迴圈區分輸入圖像中,每個像素位置是否在內切圓內。如在內切圓內則透過RGB的方式存入第一張圖像之同樣位置,反之,存入第二張圖像。 
   
    ↑第一張圖像                                            ↑第二張圖像
  • 第一張圖像如功能(a)的步驟進行旋轉。
  • 第一張圖像和第二張圖像透過如上述之雙層for迴圈合併。
  • imshow()顯示結果圖片。

3.    destroyWindow()關閉視窗,釋放資源。

 

執行結果:

1.    選單

2.    功能(a)整張圖像

3.    功能(b)中心內切圓區域 

 

Demo影片連結: 影片


留言

這個網誌中的熱門文章

rzwang Homework #1

s1093350 Homework #2

s1081444 Homework #7