s1091455 作業1


題目說明:

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

開發環境: 

    environment       : Ubuntu-22.04
    language            : C++ ( Visual Studio Code )
    date                   : 2023/03/05
    package             : OpenCV - 4.7.0
    
    excute command : 
        g++ main.cpp `pkg-config --libs opencv4` `pkg-config --cflags opencv4` && ./a.out

實作:

    以下是完成後的結果:

(完成畫面)
 
    可調整圖片旋轉的角度 ( 0~359 ),如果是旋轉小部分圖片的則還可以調整圓形的半徑大小

(左圖是將照片旋轉191度,而右邊則是讓半徑為62的圓形旋轉280度)

(左圖是將照片旋轉74度,而右邊則是讓半徑為125的圓形旋轉119度)



程式說明:




    在 Function 中讀取圖片
    
    namedWindow 創立名為 WholePicRotation 及 CenterRotation的視窗

    createTrackbar 在視窗中建立 Trackbar 並將值存入變數中

   

   
   getRotationMatrix2D 得到旋轉矩陣

   wrapAffine 將原圖透過得到的旋轉矩陣進行旋轉



    
    旋轉中間圓形區域
    
    MakeCenterCircle 以我們選取的半徑得到中間圓形區域的範圍

    wrapAffine 旋轉後,把我們所需要的圓形範圍 copy 到原圖中

    最後就能呈現出中間圓形範圍旋轉的效果。

執行:

    在 Ubuntu 中執行,在終端機中輸入執行指令:

g++ main.cpp `pkg-config --libs opencv4` `pkg-config --cflags opencv4` && ./a.out


    執行 g++ 時會產生一個執行檔,預設名稱為 a.out 
      
     因此指令尾段的 ./a.out 就是在 Liunx 環境中執行檔案的指令



    執行結束在按 ESC 鍵即可關閉圖片


影片範例:


           (Demo影片)


留言

這個網誌中的熱門文章

rzwang Homework #1

s1093350 Homework #2

s1091537 Homework #1