2022年3月10日 星期四

s1081526 作業2

 1.開發環境:

opencv:4.5.5

windows10

visual studio 2019,c++


2.作業說明:

雖然專案叫做hw1但請不要在意,我只是懶得重新架設環境所以繼續用了之前的專案。

一開始有兩個模式可以選,模式1就是普通的整張圖旋轉;模式2則是圖中圓形的部分會旋轉。

模式選擇


兩個模式都是用createTrackbar來製造滑動條。

然後在createTrackbar的下一行需要先呼叫一次觸發函式,不然一開始圖片不會出現。

模式1:

移動滑塊的話會觸發的函式是picRotate。

其中就是指定圖片的旋轉中心,旋轉角度,和縮放比例後,用getRotationMatrix2D來取得旋轉矩陣。再使用warpAffinerup進行仿射變換,就可以達到整張圖片的旋轉。

原圖

拉動滑塊旋轉


模式2:

一進入模式2就會先執行我寫的cutPic函式,它的作用是先把原圖切成:一張只有要旋轉的圓形部分的圖片,和一張除了圓形以外的其他地方的圖片。

會切成這兩張

接著移動滑塊的話會觸發的函式是circleRotate。

它執行的動作就是,將先前切下圓形的圖片旋轉後,再與剩下的部分結合。

旋轉前

旋轉後


沒有留言:

張貼留言