2021年6月10日 星期四

s1063514影像處理作業7

影像處理概論作業7

作業題目: 

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

 

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

使用環境:

  • Linux version 4.15.0
  • Python 3.6.9
  • opencv-python 4.5.1.48
  • numpy 1.19.15


實作方法:

找多少顆棋使用了以下兩個不同的方式

法一找圓:

先將圖片轉為灰階,對圖片做特定二值化,開閉運算處理後的圖,透過HoughCircle,調整容許值多寡及半徑,

對其進行finetune,找出最接近真實的棋數,並透過cv2.circle把抓出的棋用所偵測到的圓圈畫出來。


法二侵蝕:

先將圖片轉為灰階,對圖片做二值化,getstructuringelement 找出適當kernel,

erode,dilate得出分離的各個點,透過findcounter找出獨立的空白面積處,計算有多少個棋


執行結果:

圓圖>>二值化>>法一finetune找圓>>法二erode&dilate處理獨立各點結果圖

 IMG_5702.jpg

                                                              

                                                          圓含有24顆棋



                                           
                                         法一: 框出23顆棋,0顆誤判,1顆沒框到
                                                                
法二:計算出21個點


IMG_5703.jpg

                                                                    圓含有31顆棋


法一: 框出31顆棋,2顆誤判,0顆沒框到


                                                            法二: 計算出19個點

IMG_5704.jpg        

                                                                圓含有31顆棋

                                                                    


                                                   法一: 框出31顆棋,1顆誤判,0顆沒框到

                                                                法二: 計算出31個點



沒有留言:

張貼留言