s1091524 作業1

 一、題目說明:

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

二、開發環境:

  • Windows 10
  • Visual Studio 2022
  • C++
  • OpenCV 4.6.0

三、程式說明:

    視窗、trackBar、旋轉事前準備:先以imread()讀取圖片、以image.cols和image.rows計算中心點並以Point2f儲存。接著在main() function執行namedWindow()及兩次createTrackbar(),angle1控制(a)整張圖像;angle2控制(b)中心內切圓區域 的旋轉角度,這邊要注意的是:假如要控制整張圖像的旋轉,則angle2的值必須為0,否則不會有作用;反之亦然。

    (a)整張圖像:先以getRotationMatrix2D()建立旋轉的矩陣,接著用warpAffine()將原圖與矩陣計算,最後在imshow()將結果展示。結果如下圖。

    (b)中心內切圓區域:前面與(a)一樣,接著做出有一個白色的內切圓遮罩,並以bitwise_and()對每一個pixel與自己做and運算並套用mask。此時執行結果會如下圖。

    最後要把黑色的部分套上原圖,先在原本的image上畫一個黑色的內切圓,做出內切圓外遮罩


    接著將此圖與上面的結果做bitwise_or()運算,就會得出想要的結果。

四、影片Demo:




留言

這個網誌中的熱門文章

rzwang Homework #1

s1093350 Homework #2

s1091537 Homework #1