2020年7月1日 星期三

1051427 影像處理作業6

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

結果:

由原始圖片(圖1)做erode(使用150*200的長方形)後得到圖2,然後直接用圖2做findContours判斷棋子數,如果再做dilate的話會變成圖3反而不好判斷
圖1
圖2
圖3

1061526影像處理作業6

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

三、實作方法

先將圖片二值化
再將圖片dilate
最後用findContours算初個數

四、顯示結果






1051532 影像處理作業 6


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

三、操作步驟
  1. 利用cin輸入檔名
  2. 用cv.imread輸入圖檔
  3. 利用resize調整圖至600x400
  4. 使用blur調整圖片過於明亮的部分
  5. 將圖輸出至黑白圖片
  6. Threshold()將其二值化標示棋子
  7. 利用erode()及dilate()分離棋子
  8. Canny()標示邊緣
  9. findContour()取得邊緣位置
  10. drawContour()將邊緣畫回輸入圖檔
  11. contourArea()計算各圖形面積
  12. 計算值並找出棋子數量
四、執行結果

1063332 影像處理作業6


一、作業題目:
請撰寫一個程式,利用數學型態學影像處理運算(erode(), dilate()等函式),計算出所附 圖像(共三張)每張圖像中圍棋個數。
a. 請在部落格呈現經由數學型態學影像處理運算後的圖像,同時要呈現你程式輸出棋 子數量的螢幕截圖。
b. 程式不一定可以算出正確棋子數量,越接近正確答案越好!
二、使用環境:
  • Visual Studio 2019
  • Python 3.7.6
  • OpenCV 4.2.0
  •  Numpy 1.18.2
  • Matplotlib 3.2.1
三、實作方法:
  • Imread讀入圖片
  • 對圖片做Otsu二值化
  • 對整張圖進行各種型態學運算(侵蝕 膨脹 開運算 閉運算)
  • 針對感興趣區域ROI做型態運算,以避免發生對全圖運算時可能會將重要資訊去除掉的情況
  • 最後使用findContours函數找出棋子
  • drawContours畫到二值化後的圖上
  • 使用pyplot輸出圖檔與偵測
四、成果:


1052420 影像處理作業 6

一、作業題目

請撰寫一個程式,利用數學型態學影像處理運算(erode(), dilate()等函式),計算出所附

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

二、環境設置

1. windows 10
2. Spyder(Anaconda3)  
3.
opencv:4.2.0
4. python 3.7.4


三、作法

 cv.GaussianBlur()使圖片平滑處理
 morphologyEx()函式將裡面參數設成閉運算
 threshold將圖片做二值化
 cv.findContours ()函式算出棋子個數

四、結果

圖一


圖二



圖三



1061538 影像處理作業6

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

環境:
visual studio 2017
opencv
c++

作法:
讀入圖片
用threshold把圖片二分化
分別erode和dilate
findContours算個數


作業成果:

1061524 影像處理作業6

1.作業說明:

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

2.使用環境:
Operation system: windows10
Programing language: Python 3.8.2
Library version: Opencv 4.2.0

3.程式流程:
(1) 使用 cv2.imread(...) 將原始圖片讀入
(2) 使用 cv2.cvtColor(...) 將圖片轉成灰階
(3) 使用    cv2.getStructuringElement(...) 產生kernel
(4) 使用 cv2.threshold(...)  將圖片做二值化
(5) 使用 cv2.erode(...) 將圖片進行腐蝕
(6) 使用 cv2.findContours(...) 檢測輪廓
(7) 最後計算個數後印出並顯示圖片

4.執行範例:
result:

5702:

5703:

5704: