1.開發環境:
opencv:4.5.5
windows10
visual studio 2019,c++
2.作業說明:
雖然專案叫做hw1但請不要在意,我只是懶得重新架設環境所以繼續用了之前的專案。
一開始有兩個模式可以選,模式1就是普通的整張圖旋轉;模式2則是圖中圓形的部分會旋轉。
模式選擇
兩個模式都是用createTrackbar來製造滑動條。
然後在createTrackbar的下一行需要先呼叫一次觸發函式,不然一開始圖片不會出現。
模式1:
移動滑塊的話會觸發的函式是picRotate。
其中就是指定圖片的旋轉中心,旋轉角度,和縮放比例後,用getRotationMatrix2D來取得旋轉矩陣。再使用warpAffinerup進行仿射變換,就可以達到整張圖片的旋轉。
原圖
拉動滑塊旋轉
模式2:
一進入模式2就會先執行我寫的cutPic函式,它的作用是先把原圖切成:一張只有要旋轉的圓形部分的圖片,和一張除了圓形以外的其他地方的圖片。
會切成這兩張
接著移動滑塊的話會觸發的函式是circleRotate。
它執行的動作就是,將先前切下圓形的圖片旋轉後,再與剩下的部分結合。
旋轉前
旋轉後
沒有留言:
張貼留言