s1093326 作業1
主題: 圖像旋轉 (Image Rotation)
一、題目說明
撰寫一個程式將一張圖像的(a)整張圖像,(b)中心內切圓區域,旋轉一個角度(逆時針旋轉0 度至359 度):利用一個滑動條(trackbar)控制旋轉角度。
二、開發環境
OS: Windows 10Editor: Visual Studio 2022
Language: C++
Package : OpenCV-4.7.0
三、程式碼說明
1. Trackbar: 使用createTrackbar()製作滑動條,每次滑動時angle會改變,並調用on_trackbar(),由on_trackbar()將數值傳入並對圖片進行操作
2. 中心內切圓區域:
(1)
mask
先將所有像素設為0(黑色),再使用circle()畫出內切圓,並將內切圓設為255(白色) (圖一)
(2)
內部
使用copyTo()將原圖(img)與mask運算並存於src中
(3)
外部
先複製原圖到bg後利用setTo(),bg會將mask的白色區域設置為0 (黑色) (圖三)
(4) add()
將兩張圖片(圖二、圖三)合併 (圖四)
圖一 圖二
圖三 圖四
3. getRotationMatrix2D(): 先將center設為圖片中心後,利用getRotationMatrix2D()由center為中心旋轉trackbar滑動的值(angle)
4. warpAffine(): 產生旋轉影像,並使用imshow()將圖片顯示
留言
張貼留言