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

2022年6月9日 星期四

s1081544 作業7

作業說明:

撰寫一個程式,利用數學型態學影像處理運算(erode(), dilate()等函式),計算出所附圖像(共三張)每張圖像中圍棋個數。

開發環境:

   Windows 11

      Visual studio2022

      Opencv-4.5.5

      C++

實作方法:

讀入圖片後先將圖片轉成灰階圖,將灰階圖二值化,接著反白,然後用erode()和dilate()將棋子之間分開,再用findContours()找到輪廓並畫出來,最後輸出找到的輪廓數量。

執行結果:

   image1偵測到的棋子數:22

   image2偵測到的棋子數:31

   
   image3偵測到的棋子數:31

2022年6月3日 星期五

s1081544 作業6

作業說明:

附件中為三張利用將晶片高度以色彩視覺化後的圖片。

請設計一個基於Run-Length的壓縮法方,對圖檔作無失真壓縮後儲存成新檔案。

開發環境:

   Windows 11

      Visual studio2022

      Opencv-4.5.5

      C++

實作方法:

讀入三個圖檔,用split()將圖檔矩陣分為RGB三個通道,再將三個通道降維成一維陣列用vector儲存,再用自訂義runLenthEncoding函式壓縮圖檔,將檔案壓縮成.dat檔,最後用stat()得到檔案大小計算壓縮率

執行結果:

   壓縮後:

    計算壓縮率:

    dat檔資料:

2022年5月19日 星期四

s1081544 作業5

作業說明:

撰寫一個程式將所附圖像flower.jpg的黃色花瓣區域擷顯示出來。

開發環境:

    Windows 10

      Visual studio2022

      Opencv-4.5.5

      C++

實作方法:

先讀取圖檔,將圖片轉成HSV,設定scalar上下限後得到mask,

用bitwise_and函數擷取結果。

執行結果:

   讀入圖檔

   轉成HSV

   inRange得到mask

   mask跟原圖and得到結果

2022年4月12日 星期二

s1081544 作業4

作業說明:

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

(1) 計算輸入圖的離散傅立葉轉換結果,並將頻譜大小與相位角度各以灰階256色圖像方式呈現出。

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

開發環境:

          Windows 10

        Visual studio2022

        Opencv-4.5.0

        C++

實作方法:

(1)先以灰階讀取圖片,調整成適合的尺寸,宣告通道拿來放

dft後的實數部分和虛數部分,再用merge()合併通道,用dft()

進行離散傅立葉轉換,分離通道,得到頻譜圖和相位角後將

其中心化跟歸一化。

(2)自定義lowPassFilter(),把擴充後的圖和轉換的圖傳進去,

經果濾波後,H(u,v)和F(u, v)相乘,將結果逆傅立葉轉換,歸

一化,再裁回原尺寸輸出。

執行結果:

  讀入灰階圖

   頻域

    相位

    高斯低通濾波(sigma = 80)

2022年3月13日 星期日

s1081544 作業3

作業說明:

        以灰階讀取一張圖像,(a)利用 Sobel Operators 偵測並輸出邊緣成分圖,

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

開發環境:

        Windows 10

        Visual studio2022

        Opencv-4.5.0

        C++

實作方法:

        先用灰階讀取圖片,用sobel operator偵測圖片邊緣,

然後把邊緣圖反白,再進行去噪模糊化處理,最後跟前一

張圖線性混合。

執行結果:

    讀入灰階圖

 
     sobel邊緣偵測

 
     反白

 
     模糊處理後和前一張圖混合

   你好,謝謝,小籠包,再見
     

2022年2月28日 星期一

s1081544 作業2

 開發環境:

        Windows10

        Visual studio 2022

        Opencv-4.5.0

        C++

作業說明:

        用trackbar滑動控制圖片的旋轉角度,選擇旋轉

整張圖或是中心內切圓區域,旋轉角度0到359度。

實作方法:

        先輸入a或b選擇要旋轉整張圖還是內切圓區域,

如果是a就直接create一個trackbar,初始值是0最多拉

到359,b的話則把原圖切割成兩個部分,然後旋轉內

切圓的部分,trackbar控制旋轉角度後再線性混合兩個

部分。

執行結果:  

    模式a

    原圖:

    整張圖逆時鐘旋轉:

    模式b
    原圖:
    內切圓區域逆時鐘旋轉:

2022年2月24日 星期四

s1081544 作業1

 開發環境:

        Windows10

        Visual studio 2022

        Opencv-4.5.0

        C++

作業說明:

        輸入圖片,接著判斷是彩圖還是灰階圖,

 接著輸入想改變的值的大小,如果輸入的是彩圖

,則改變圖的R值,輸入的是灰階圖,則改變圖的

灰階值。

實作方法:

        先輸入圖片名稱,再到專案資料夾裡讀圖,如果找不到

檔案會輸出"image not found"就再輸入一次,讀到圖片後進

function判斷彩圖還是灰階,然後再輸入想改變的值,改變每

個像素的值,值的範圍在0 ~ 255之間,最後輸出。

執行結果:    

    lennaRGB.tif 

    origin                              R(+100)                          R(-100)

    bookGray.jpg

    origin                              gray(+100)                      gray(-100)