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

2021年6月13日 星期日

s1071527 影像處理作業7

1. 作業說明:  

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

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

 

2. 作業環境、語言:

Windows 10 + PyCharm Community Edition 2020.3 x64 + OpenCV4.5.1, python 3.8

 

3. 方法:

        (1) 讀取圖片,取得原圖&灰階圖

        (2) 二值化圖片

        (3) 計算kernel(橢圓)

        (4) iterations, erode()侵蝕圖片

        (5) dilate()膨脹圖片

        (6) findContours()計算邊緣數量

        (7) drawContours()畫上原圖

        (8) 印出contours數量(表圍棋數)

 

4. 執行結果:

IMG_5702.JPG



IMG_5703.JPG



IMG_5704.JPG




2021年6月7日 星期一

s1071527 影像處理作業8

1. 作業說明:  

請寫一個程式將附圖二值化後輸出黑白圖像。
目的是將文字與背景分離

2. 作業環境、語言:

Windows 10 + PyCharm Community Edition 2020.3 x64 + OpenCV4.5.1, python 3.8

 

3. 結果圖:


 


2021年6月6日 星期日

s1071527 影像處理作業6

1. 作業說明:  

Run-Length Based Image Compression練習

附件中為三張利用將高度以色彩視覺化後的圖片。 請設計一個基於Run-Length的壓縮法方,對圖檔作無失真壓縮後儲存成新檔案。 部落格上應敘述你的壓縮方法,提供壓縮檔之格式,並計算三張圖的平均壓縮率(compression ratio)

2. 作業環境、語言:

Windows 10 + PyCharm Community Edition 2020.3 x64 + OpenCV4.5.1, python 3.8

 

3. 方法:

        A. 壓縮:

         (1) 讀取圖片,取得圖片大小&BGR三個channel(split)

         (2) 調整陣列(2D  to 1D)

         (2) BGR三個channel值分別做RLE演算法壓縮

         (3) 壓縮完的BGR寫入.npz

        B. 解壓縮

         (4) 讀取.npz檔、取得三個被壓縮的BGR

         (5) 用逆向的RLE還原本來的BGR

         (6) 調整BGR陣列大小(reshape())

         (7) 合併三個channel後寫出圖片

 

4. 執行結果:

img1.bmp & img1_RLE.bmp(解壓縮後圖片)



Img2.bmp & img2_RLE.bmp(解壓縮後圖片)



Img3.bmp & img3_RLE.bmp(解壓縮後圖片)

壓縮率:

13.9/8.14 = 1.7076167076167



13.9/13.5 = 1.0296296296296



13.9/7.77 = 1.7889317889317



平均壓縮率 = (13.9/8.14 + 13.9/13.5 + 13.9/7.77)/3 = 1.5087260420593

2021年5月24日 星期一

s1071527 影像處理作業5

1. 作業說明:  

Color Visualization of Depth Information

附件中的讀.row晶片設計的高度檔案,設計人員無法直接看到相關資訊。利用你所學的Color顏色的知識與處理技術,撰寫一個程式來讀取附件中的讀.row 檔案,將高度資料以圖片(顏色)視覺化呈現出來,讓設計人員可以看到高度相關資訊。

2. 作業環境、語言:

Windows 10 + PyCharm Community Edition 2020.3 x64 + OpenCV4.5.1, python 3.8

 

3. 方法:

        (1) 使用open讀進raw

        (2) struck.unpack()header的長寬、pixel

        (3) 若值為-99999設為0

        (4) 找出pixel的最大最小值

        (5) 分布到0~255

        (6) applyColorMap上色

        (7) 寫出圖片

 

4. 執行結果:

02.jpg

08.jpg


10.jpg



2021年5月16日 星期日

s1071527 影像處理作業4

1. 作業說明:  

Skin Color Detection

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

 

2. 作業環境、語言:

Windows 10 + PyCharm Community Edition 2020.3 x64 + OpenCV4.5.1, python 3.8

 

3. 方法:

        (1) 使用cv2.imread讀進jpg

        (2) 將圖片數值轉hsv (inRange設定範圍閥值)

        (3) 濾波得到hsv mask

        (4) 原圖套上mask得到hsv

        (5) 將圖片數值轉ycrcb (inRange設定範圍閥值)

        (6) 濾波得到ycrcb mask

        (7) 原圖套上mask得到ycrcb

        (8) hsv+ycrcb 得到skin mask

        (9) 模糊化、濾波 skin mask

        (10) 原圖套上 skin mask 得到Result

 

4. 執行結果:

Origin


HSV


YCrCb


Result






2021年5月2日 星期日

s1071527 影像處理作業3

1. 作業說明:

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

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

(2)對圖像利用 Gaussian Low-Pass filter 處理,輸出平滑後圖像。(程式利用課本的 frequency filter 步驟者可得滿分!)

2. 作業環境、語言:

Windows 10 + PyCharm Community Edition 2020.3 x64 + OpenCV4.5.1, python 3.8

3. 方法:

        (1)使用cv2.imread讀進jpg(灰階)

        (2)cv2.dft傅立葉轉換圖片

        (3)np.fft.fftshiftzero-frequency分量移到頻譜中心

        (4)cv2.magnitude取頻譜圖

        (5)cv2.phase取相位圖

        (6)cv2.GaussianBlur 取平滑圖像

4. 執行結果:



2021年3月24日 星期三

s1071527 影像處理作業2

1. 作業說明:

撰寫一個程式,讀取一張 256 色灰階圖像或 RGB 全彩圖像(.bmp .jpg 圖像格式都可, 如全彩圖像可先將圖片由 RGB 轉換至灰階影像),利用 Sobel Operators 圖像邊緣為基礎,設計一個類似素描線條自畫像程式。

2. 作業環境、語言:

Windows 10 + PyCharm Community Edition 2020.3 x64 + OpenCV4.5.1, python 3.8

3. 方法:

        (1)使用cv2.imread讀進jpg

        (2)cv2.imshow顯示當前圖片

        (3)cv2.cvtColor將原圖轉成灰階

        (4)Sobel處理x, y軸抓取邊緣

        (5)cv2.convertScaleAbsx, y轉回uint8

(6)cv2.imshow顯示absX/absY圖片

        (7)cv2.addWeighted adsX/absY兩張圖片合在一起(權重都設0.75)

        (8)cv2.imshow顯示抓取邊緣後圖片

        (9)反白, cv2.imshow顯示反白後圖片

        (10)cv2.threshold將反白後圖片二值化

        (11)cv2.imshow顯示二值化圖片

        (12)cv2.imwrite存檔(out.jpg)

4. 執行結果:

原圖

灰階

absX

absY

absX + absY

反白

二值化