顯示具有 s1081424 標籤的文章。 顯示所有文章
顯示具有 s1081424 標籤的文章。 顯示所有文章

2022年6月2日 星期四

s1081424 作業6


一、作業說明:

    

    請設計一個基於Run-length的壓縮方法,對圖檔做無失真壓縮後儲存成新檔案。並在部落格上敘述壓縮方法,提供壓縮檔之格式,並計算平均壓縮率(compression ratio)。

二、開發環境:


    (1)    Windows 10 + Visual Studio2019 + Opencv3.4.6

    (2)    方案組態:Debug

    (3)    方案平台:x64

    (4)    使用到的Library:iostram、opencv/opencv.hpp、fstream

    (5)    使用的語言:C++


三、實作說明:


     1.    一開始先讀進圖片,若檔名不存在則顯示


    
      2.    
讀取圖片,讀取長寬、各pixel值

     3.    寫 一個函示,負責處理圖片壓縮,裡面運用cv2切分成bgr三通道,利用Run-Length編碼:

              計算連續出現的值

    

      4.    分別對B,G,R 做 RLE 

      5.    最後再進行圖片的輸出


三、結論:

    

    1.   img1的壓縮率:



    2.    img2的壓縮率:

    3.    img3的壓縮率:

    4.    平均壓縮率:

    (1.8+1.0+1.9) / 3= 1.56

    




2022年5月19日 星期四

s1081424 作業5

 一、作業說明:

    撰寫一個程式,讀取一張圖像,將 "flower.jpg" 的黃色花瓣區域顯示出來。


二、開發環境:


    (1)    Windows 10 + Visual Studio2019 + Opencv3.4.6

    (2)    方案組態:Debug

    (3)    方案平台:x64

    (4)    使用到的Library:iostram、opencv/opencv.hpp

    (5)    使用的語言:C++


三、實作說明:


    1.    一開始先讀進圖片,若檔名不存在則顯示



    2.    輸出原圖


    3. 先將原圖由RGB轉成HSV,並將圖片儲存為hsv,最後再輸出hsv





    4. 設定在HSV中黃色的範圍上限與下限,分別設為
            
            (1)    下限: yellowHmin = Scalar (0,140,175)

            (2)    上限:yellowHmax = Scalar (28,255,255)


    5. 以下限與上限設定遮罩,並輸出遮罩

                                       

    6. 利用 "bitwise_and" 將原圖與遮罩相乘合併,並
輸出result
 


       

2022年4月15日 星期五

s1081424 作業4

 一、作業說明:


    撰寫一個程式,讀取一張256色灰階圖像。

    (1)    計算輸入圖的離散傅立葉轉換結果,並將頻譜大小與相位角

            度各以灰階56色圖像方式呈現出。

    (2)    對圖像利用 Gaussian Low-Pass filter處理,輸出平滑後圖像。


二、開發環境:


    (1)    Windows 10 + Visual Studio2019 + Opencv3.4.6

    (2)    方案組態:Debug

    (3)    方案平台:x64

    (4)    使用到的Library:iostram、opencv/opencv.hpp、math.h、cmath

    (5)    使用的語言:C++


三、實作說明:


    1.    一開始先讀進圖片,若檔名不存在則顯示

      


2.    輸出原圖

        

           

    3.    利用下面的公式先計算Frequency Spectrum,



            



            

            f是空間域值,F是Frequency域值,變換之後的Frequency域值是複數,

           因此顯示傅立葉轉換之後的結果需要利用實數圖像加虛數圖像來顯現,    

           將成果圖片印製出來。

      

        



                          

    4.    利用Gaussian Low-Pass filter處理,高斯濾波是一種線性平滑濾波,適
            用於消除高斯噪聲,廣泛應用於圖像處理的減噪過程。通俗的講,高
            斯濾波就是對整幅圖像進行加權平均的過程,每一個像素點的值,都
            由其本身和鄰域內的其他像素值經過加權平均後得到。
            
            先對每一行進行一維高斯濾波,再對每一列進行一維高斯濾波。

        

            加上trackbar,使使用者可以選擇Sigma值,最後再將成果列印出來。

        




2022年3月21日 星期一

s1081424 作業 3

一、作業說明:


    撰寫一個程式,以灰階模式讀取一張圖像 imread(path, IMREAD_GRAYSCALE) 

    (a)利用 Sobel Operators 偵測並輸出邊緣成分圖 

    (b)設計一個類似素描線條的自畫像圖


二、開發環境:


    1. Windows 10 + Visual Studio2019 + Opencv3.4.6

    2. 方案組態:Debug

    3. 方案平台:x64

    4. 使用到的Library:iostram、opencv/opencv.hpp

    5. 使用的語言:C++


三、實作說明:

    

    1. 在讀取圖片時,可以在第二個參數指定圖片的格式,

                                    "IMREAD_GRAYSCALE"

        可以以灰階的格式來讀取圖片。



    2. 利用Sobel Operators 偵測並輸出邊緣成分圖 ,先將x軸和y軸的梯度值算出,並分別存成               gradX與gradY兩張圖,最後在用addWeighted,將兩張圖合成一張邊緣成分圖。


    3. 最後利用兩次的迴圈將顏色相反過來。



四、實作結果

    1. 灰階圖片

    2. 偵測邊緣線條:


    3. 素描畫像:




2022年3月10日 星期四

s1081424 作業 2

 一、作業說明:

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

        利用trackbar獲得旋轉角度之後,將度數回傳至function中,並利用三角函數將圖片進行旋轉。

二、開發環境:

1 .Windows 10 + Visual Studio 2019 + OpenCV 3.4.6

         2 .方案組態:Debug

         3 .方案平台:x64

         4 .使用到的Libraryiostreamopencv2/opencv.hpp

5 .使用的語言:C++


 三、程式功能:

1 .一開始先讀進圖片,若檔名不存在則顯示

 


        2 .讓使用者輸入想要的function,有1或是2可以做選擇

 

        3 .根據輸入的數字不同,會選擇:

                (1) :旋轉整張圖像

                (2) :僅旋轉中心內切圓區域


        4 .將成果圖片印製出來

 

(1) :旋轉整張圖像

(2) :僅旋轉中心內切圓區域

五、影片分享

1. 旋轉整張圖像


 

            2. 僅旋轉中心內切圓區域




2022年2月24日 星期四

s1081424 作業 1

一、作業說明:
    
        撰寫一個程式讀取一張圖片,將圖像中每一個點像素的值各加上一個數值。如果輸入圖像是灰階圖像,改變每個像素的灰階值;如果輸入圖像是全彩圖像(RGB),則只改變 每個像素的 R 值。

        利用R、G、B三值的等值與否判斷該圖為灰階或是全彩,根據圖片為灰階或是全彩再去進行不同的運算。公式為:

g(i,j)=αf(i,j)+β

 α用於控制對比度,β為增益變量,故若圖片為灰階,R、G、B三原色的變異量都相同,若圖片

為全彩,則僅改變R的數值。


二、開發環境:

1 .Windows 10 + Visual Studio 2019 + OpenCV 3.4.6

        2 .方案組態:Debug

        3 .方案平台:x64

三、程式過程:

      1 .一開始先讀進圖片,若檔名不存在則顯示
 
 

     2 .讓使用者輸入想要調整的亮度

 

     3 .判斷讀到的圖片使否為全彩,並將結果印製出來 

    A.是 

 
    B.否

 

        4 .將原始圖片與調整後的圖片一起印製出來


四、結果分享

                            1. 灰階

(1)原圖 

 

(2)亮度+50

 

(3)亮度-50 


        2.全彩

          (1)原圖

          
          (2)亮度+125

        
          (3)亮度-125


五、影片分享
    
    1.灰階

    

    2.全彩