2020年6月30日 星期二

1051415 影像作業處理6

1.作業說明:
請撰寫一個程式,利用數學型態學影像處理運算(erode(), dilate()等函式),計算出所附圖像(共三張)每張圖像中圍棋個數。 
a. 請在部落格呈現經由數學型態學影像處理運算後的圖像,同時要呈現你程式輸出棋子數量的螢幕截圖。 
b. 程式不一定可以算出正確棋子數量,越接近正確答案越好! 

2.使用環境:
 Visual Studio 2017
 opencv3.4.7

3.實作方法:
blur():平滑處理
threshold():二值化
dilate():膨脹處理
findContours():尋找邊緣
drawContours():畫出邊緣
contourArea():計算圍出來的面積大小  (用來計算數量用)

4.執行結果:
原圖

二值化 > 膨脹 > 畫邊緣

實際結果:24,31,31  預測結果:24,32,32  誤差:0,+1,+1

1051414影像作業處理6


1.作業說明
請撰寫一個程式,利用數學型態學影像處理運算(erode(), dilate()等函式),計算出所附
圖像(共三張)每張圖像中圍棋個數。
a. 請在部落格呈現經由數學型態學影像處理運算後的圖像,同時要呈現你程式輸出棋
子數量的螢幕截圖。
b. 程式不一定可以算出正確棋子數量,越接近正確答案越好!
2.使用環境
 Visual Studio 2017
 opencv3.4.7
3.實作方法
imread()讀取
blur()平滑處理
threshold()做二值化
dilate()做膨脹處理
findContours()尋找邊緣
drawContours()可匯出邊緣
contourArea()可計算所為出得面積大小
imshow()顯示圖片
4.顯示結果

1051537 影像處理作業 6

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



二、使用環境
       1.  Visual Studio 2017
       2.  Python 3.7

       3.  OpenCV 4.1.1.26
       4.  numpy 1.17.1


三、 實作方式
      1.讀灰階圖
      2.用getStructuringElement建置侵蝕的依據
      3.對圖做threshold二值化
      4.對圖做dilate擴張
      5.反白圖片
      6.利用findContours計算數量

四、 實作結果

原始圖像
處理後的圖像
辨識結果
 
第一張誤差為-3
第二張誤差為0
第三張誤差為0

1063318 影像處理作業6

作業要求:

數學型態學影像處理應用 Morphological Image Processing請撰寫一個程式,利用數學型態學影像處理運算 erode(), dilate()等函式,計算出所附圖像共三張每張圖像中圍棋個數。
a.
請在部落格呈現經由數學型態學影像處理運算後的圖像 ,同時要呈現你程式輸出棋子數量的螢幕截圖
b.
程式不一定可以算出正確棋子數量, 越接近正確答案越好

使用環境:
 python       opencv     vscode


實作方式 :
將圖片灰階讀入
再將其二值化
使用dilation
再用opening
最後使用findcounter找出數量

結果:











(上到下分別爲圖1-3)

1051535 影像處理作業6


l作業說明
  請撰寫一個程式,利用數學型態學影像處理運算(erode(), dilate()等函式),計算出所附
圖像(共三張)每張圖像中圍棋個數。
a. 請在部落格呈現經由數學型態學影像處理運算後的圖像,同時要呈現你程式輸出棋
子數量的螢幕截圖。
b. 程式不一定可以算出正確棋子數量,越接近正確答案越好

l  使用環境

   compiler: Visual studio 2017
   PyCharm Community Edition 2018.3.5 x64
   opencv 3.4.3.18
l   實作方法
l   先將圖片讀取成灰階圖。(連續輸入)
l   將圖片做開運算(morphologyEx),以消除棋子上的反光。
l   將開運算後的圖片做二值化(threshold)
l   利用erode將圖像侵蝕。
l   dilate(擴張)
l   對二值化後的圖片以Canny取邊緣,做邊緣偵測。
l   findContours()對第5步的圖片做找邊緣。
l   篩選contours,若值太大判斷為2棋子連在一起。
l   輸出結果、誤差。

l   實作成果
                           測試結果
 圖1
圖2
                                                                              圖3



1050905 影像處理作業6

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

2.環境設置:
C++
visual studio 2017
opencv 3.4.3

3.實作:
(1)以灰階圖讀入圖片。

(2)將圖片模糊化去雜訊,我使用GaussianBlur來去雜訊。

(3)之後將圖片反二值化,變成黑底白棋。

(4)使用getStructuringElement當作是dilate和erode的參數,我用的是以正方形邊長為5
(RECTangle (5.5))。

(5)先做dilate(擴張),把棋子的白色部分覆蓋棋子內大部分的黑色部分,在做erode(侵蝕)將白色部分由外部縮小,我的erode次數根據不同圖片做不同次數。

(6)使用findContours(),根據外部輪廓存入掃描到的白色部分,之後再取findContours()第2個參數contours的size,也就是存入的點的個數當成是偵測到的棋子數量。

4.結果:原先我使用一般二值化,可是這樣findContours會找不出輪廓,所以我才用反二值化。另外反二值化的話erode跟dilate要顛倒過來用。

第一張:做了20次erode,達到了最接近真實棋子數量的值,再高的話小白點會被消掉,而無法偵測。

第三張:做了18次erode,達到了最接近真實棋子數量的值。

第三張:做了15次erode,達到真實棋子數量的值。


1063325 影像處理作業6

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

  1. 請在部落格呈現經由數學型態學影像處理運算後的圖像,同時要呈現你程式輸出棋子數量的螢幕截圖。 
  2. 程式不一定可以算出正確棋子數量,越接近正確答案越好
二、 使用環境:
1. Windows
2. Packages:opencv-python 4.2.0.34、numpy 1.18.4、matplotlib 3.2.2
3. Programming Language: Python3.6.5

三、實作方法:
1.  先用cv2,imread()讀取灰階照片
2.  
再用cv2.threshold()進行二值化,閾值設為127,超過的設為255,再反轉
3.  cv2.getStructuringElement(),結構元素設為矩型,把kernel設為(250,250)
4.  先對二值化圖片進行cv2.erode()侵蝕
5.  在用cv2.dilate()把侵蝕後的圖片膨脹
6.  
cv2.findContours()cv2.drawContours()用來計算棋子個數

四、實作結果:


                              IMG_5702

IMG_5703

IMG_5704


1053329 影像處理作業6

一、作業要求:
請撰寫一個程式,利用數學型態學影像處理運算(erode(), dilate()等函式),計算出所附 圖像(共三張)每張圖像中圍棋個數。a. 請在部落格呈現經由數學型態學影像處理運算後的圖像,同時要呈現你程式輸出棋 
子數量的螢幕截圖。b. 程式不一定可以算出正確棋子數量,越接近正確答案越好! 

二、環境:
OS:Windows 10
Programing Language:python 3.6.8
IDE:Visual Studio Code 1.45.1

三、實作方式:
cv2.imread()讀取圖像(灰階)
cv2.imshow()顯示圖像
threshold()將灰階圖像做二值化(閥值嘗試了多種最後設為100)
getStructuringElement()取得kernel(erode與dilate的參數)
cv2.erode()侵蝕影像,iteration=1
dilate()膨脹,iterations=60
findContours()偵測有輪廓找出棋子個數

四、成果: 

     















1051336 影像處理作業 6

一、題目說明:
    數學型態學影像處理應用 Morphological Image Processing
請撰寫一個程式,利用數學型態學影像處理運算(erode(), dilate()等函式),計算出所附 圖像(共三張)每張圖像中圍棋個數。
a. 請在部落格呈現經由數學型態學影像處理運算後的圖像,同時要呈現你程式輸出棋子數量的螢幕截圖。
b. 程式不一定可以算出正確棋子數量,越接近正確答案越好!

二、程式開發環境:
Programming Language:Python 3.8
Packages:opencv-python 4.2.0.34、numpy 1.18.4、matplotlib 3.2.2
Code Editor:Visual Studio Code

三、實作方法:
1. Use cv2.threshold 進行二質化
2. Use cv2.morphologyEx、cv2.MORPH_CLOSE 閉運算,進而消除雜訊
3. Use cv2.erode 進行侵蝕處理
4. Use cv2.dilate 進行膨脹處理,kernel設定為圓形
5. Use cv2.findContours進行偵測輪廓,即可計算圍棋之個數

四、結果:








1063329 影像處理作業6

一、作業說明   

請撰寫一個程式,利用數學型態學影像處理運算(erode(), dilate()等函式),計算出所附 圖像(共三張)每張圖像中圍棋個數。 
a. 請在部落格呈現經由數學型態學影像處理運算後的圖像,同時要呈現你程式輸出棋 子數量的螢幕截圖。 
b. 程式不一定可以算出正確棋子數量,越接近正確答案越好!

二、使用環境 

- Visual Studio 2017 
- opencv3.4.1

三、實作方法
imread()讀取圖像
imshow()顯示圖像
threshold()將灰階圖像做二值化
getStructuringElement()指定形狀和尺寸的結構元素
dilate()將二值化圖像像素膨脹
morphologyEx()形態學運算,在這裡用開運算,先erodedilate
findContours()偵測圖像輪廓
四、執行結果
1.



2.



 3.