顯示具有 #1071540 標籤的文章。 顯示所有文章
顯示具有 #1071540 標籤的文章。 顯示所有文章

2021年6月11日 星期五

s1071540 影像處理作業 7

 

s1071540 影像處理作業7

一、作業說明

主題: 數學型態學影像處理應用 Morphological Image Processing

 

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

a.    請在部落格呈現經由數學型態學影像處理運算後的圖像,同時要呈現你程式輸出棋子數量的螢幕截圖。

b.    程式不一定可以算出正確棋子數量,越接近正確答案越好!

二、作業環境&語言

Windows 10 + Python 3.8.3 +
      opencv-python 4.4.0.42 + numpy 1.18.5

三、方法&步驟

1.          imread讀取圖片

2.          圖片轉成灰階

3.          影像二值化

4.          侵蝕(erode)後再膨脹(dilate)

5.          計算輪廓數量

6.          畫出棋子位置

7.          將計算結果寫在影像上和輸出在銀幕上

 

五、執行結果

IMG_5702:





 












IMG_5703:


 














IMG_5704:

 


2021年6月7日 星期一

s1071540 影像處理作業 8

 

一、作業說明

請寫一個程式將附圖二值化後輸出黑白圖像。 目的是將文字與背景分離。
二、作業環境&語言

        Windows 10 + Python 3.8.5 
三、執行結果





2021年6月6日 星期日

s1071540 影像處理作業6


一、作業說明

Run-Length Based Image Compression

 

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

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

 

部落格上應敘述你的壓縮方法,提供壓縮檔之格式,並計算三張圖的平均壓縮率(compression ratio)



二、作業環境&語言

Windows 10 + Python 3.8.5 
         Pillow 8.1.0

 

三、方法&步驟

  1. 讀取bmp檔案
  2. 取出寬和高,以及每個pixelRGB
  3. RGB三值分開儲存(才可使Run-Length方法有效壓縮)
  4. 將長寬及壓縮後的RGB三條list接再一起並儲存為dat

五、執行結果

   img1.bmp:
Compression ratio:14665254/5940069=2.4688





   img2.bmp

Compression ratio: 14665254/10230.738=1.4334






  Img3.bmp

Compression ratio: 14665254/5450420=2.6906






avg compression ratio: 2.1976

2021年5月16日 星期日

s1071540 影像處理作業4

 

一、作業說明

Skin Color Detection

利用你所學的Color顏色的知識與技術,撰寫一個程式來偵測一張輸入照片中的皮膚區域並將其標示出。

二、作業環境&語言

Windows 10 + Python 3.8.5 
         opencv-python 4.5.1.48 + numpy 1.20.2

 

三、方法&步驟

  1. cv2.imread讀取jpg
  2. 將圖片數值轉為HSV
  3. 把在膚色範圍內的像素標示出來
  4. 將圖片數值轉為YCbCr
  5. 把在膚色範圍內的像素標示出來
  6. 將兩張圖標示出的結果做and運算
  7. 使用中值濾波去除雜訊

五、執行結果

原圖







HSV



YCBCR



HSV+YCBCR


2021年5月2日 星期日

1071540 影像處理作業3

一、作業說明

離散傅立葉轉換 離散傅立葉轉換 離散傅立葉轉換 離散傅立葉轉換 DFT 練習
請撰寫一個程式,讀取張 請撰寫一個程式,讀取張 請撰寫一個程式,讀取張 請撰寫一個程式,讀取張 256 色灰階圖像 色灰階圖像
(1) 計算輸入圖的 計算輸入圖的 離散 傅立葉轉換 傅立葉轉換 結果 ,並將頻譜大小與相位角度 並將頻譜大小與相位角度 並將頻譜大小與相位角度 並將頻譜大小與相位角度 各以灰階 256 色圖像 方式呈現 出。
(2) 對圖像 利用 Gaussian Low-Pass filter處理,輸出平滑後圖像(程式利用 課本的 frequency filter步驟者可得滿分 得滿分 !)


二、作業環境&語言

        Windows 10 + Python 3.8.5 
        opencv-python 4.5.1.48 + matplotlib 3.4.1 + numpy 1.20.2

 
三、方法&步驟

  1. Input image f(x,y) of size M*N
  2. Form a zero-padded image fp(x,y) of size P * Q, where P=2 * M, Q=2 * N
  3. Multiply fp(x,y) by (−1)^(x+y) to center its transform and compute DFT F(u,v) of the image by using cv.dft()
  4. get the phase by using cv.phase()
  5. Centered Gaussian Low-Pass filter transfer function  H(u,v) of size P×Q, center coordinates :(P/2,Q/2)
  6.  Form the product G(u,v)=F(u,v)H(u,v) 
  7.  Do IDFT to G(u,v) and multiplied by (−1)^(x+y) by using cv.idft()
  8.  Obtain g(x,y) by extracting the M×N region from the left-top quadrant of gp(x,y) 
 
五、執行結果

 
原圖

1.以灰階輸入

2. zero-padded (2 * M, 2 * N)
 
3.傅立葉轉換後的頻譜
 

3.傅立葉轉換後的相位角

4. FH的結果

5. 剪裁