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

2021年6月11日 星期五

s1061460 影像處理作業7

 作業說明:

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

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

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

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

操作環境:

l  作業系統 :  Windows10

l  編譯軟體 :  Jupyter Notebook

l  使用語言 :  Python / OpenCV 4.5.1

實作方法:

1.     讀取檔案,並轉為灰階圖像。

2.     使用數學型態學影像處理運算erode(),dilate(),將圍棋與圍棋分開。

3.     輸出圖像大小,根據其調節minRadiusmaxRadius

4.     運用HoughCircles偵測圍棋

Ø  image:輸入灰階圖。

Ø  circles:以vector< Vec3f >記錄所有圓的資訊,每個Vec3f紀錄一個圓的資訊,包含3個浮點數資料,分別表示xyradius

Ø  method:偵測圓的方法,目前只能使用CV_HOUGH_GRADIENT

Ø  dp:偵測解析度倒數比例,設dp=1,偵測圖和輸入圖尺寸相同。

Ø  minDist:圓彼此間的最短距離,太小的話可能會把鄰近的幾個圓視為一個,太大的話可能會錯過某些圓。

Ø  param1:圓偵測內部會呼叫Canny()尋找邊界,param1就是Canny()的高閾值,低閾值自動設為此值的一半。

Ø  param2:計數閾值,超過此值的圓才會存入circles

Ø  minRadius:最小的圓半徑。

Ø  maxRadius:最大的圓半徑。

5.     輸出檢測到的圓個數

6.     根據檢測到的資訊畫出圓

7.     用指定顏色標出圓的位置

8.    存取標記後影像

執行結果:

    IMG_5702.jpg 實際數量:24

  數學型態學影像處理運算後的圖像:

  程式輸出棋子數量:24(截圖)

    IMG_5703.jpg 實際數量:31

  數學型態學影像處理運算後的圖像:

  程式輸出棋子數量:30(截圖)

    IMG_5704.jpg 實際數量:31

  數學型態學影像處理運算後的圖像:


  程式輸出棋子數量:30(截圖)









2021年6月7日 星期一

s1061460 影像處理作業8

作業說明:

    二值化程式練習

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

執行結果:


2021年6月6日 星期日

s1061460 影像處理作業6

 作業說明:

Run-Length Based Image Compression練習

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

 

操作環境:

l  作業系統 :  Windows10

l  編譯軟體 :  Jupyter Notebook

l  使用語言 :  Python / OpenCV 4.5.1

 

實作方法:

     Compress

1.     讀取.bmp檔案

2.     將圖片RGB三通道分離

3.     RGB分別進行Run-Length壓縮

4.     RLE壓縮結果存至.dat檔案

 

Decompress

1. 讀取壓縮完成之.dat檔案

2. 將資料還原長、寬、RGB三通道

3. 三個channel各自復原

4. RGB解壓縮後寫到.bmp


執行結果:

img1原圖(.bmp)、壓縮(.dat)、解壓縮(.bmp)檔案大小:

壓縮比:2,157kb / 14,322kb *100% = 15%




img1原圖(.bmp)與解壓縮(.bmp)結果:


   





img2原圖(.bmp)、壓縮(.dat)、解壓縮(.bmp)檔案大小:

壓縮比:3,544kb / 14,322kb *100% = 24.7%




img2原圖(.bmp)與解壓縮(.bmp)結果:



  




img3原圖(.bmp)、壓縮(.dat)、解壓縮(.bmp)檔案大小:

壓縮比:2,056kb / 14,322kb *100% = 14.3%


    


img3原圖(.bmp)與解壓縮(.bmp)結果:



    




壓縮檔格式:.dat

平均壓縮率:(15% + 24.7% +14.3%) / 3 = 18%




2021年5月17日 星期一

s1061460 影像處理作業5

 作業說明:

Color Visualization of Depth Information

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

操作環境:

l  作業系統 :  Windows10

l  編譯軟體 :  Visual Studio Code

l  使用語言 :  Python / OpenCV 4.5.1

實作方法:

1. float32讀取.raw

2. 解封標頭(unpack Header)求出Height & Width

3. 運用長寬取得pixel存至陣列PIX_ARR

4. 求得最大值(max)&最小值(min)

5. pixel-99999的值轉為無效值

6. 計算DifferenceMax-Min

7. 轉換其為圖片(0~255)

8. 將每個數值除以Difference乘以255

9. cv2ColorMap_Jet對應值填色

10. Color Visualization輸出圖片

執行結果:

02_Original

02_ Depth Information

08_Original

08_ Depth Information

10_Original

10_ Depth Information