2020年7月2日 星期四

1061538 影像處理作業2


題目:
撰寫一個程式,讀取作業所附 2 張測試圖片,(1)設計一個二值化方法將其轉變成黑白圖像後,(2)繪出 QR code 黑色模組的外框(可利用 Sobel Operators 偵測即可)

環境:
Python
Opencv

作法:
1.先將圖片讀成灰階圖
2.接著進行二值化(經過測試100~255的範圍較清楚)
3.opencv函式庫的canny進行邊緣偵測

成果:


1051728孫嘉宏 影像處理作業6


影像處理概論作業6
1051728孫嘉宏

一、題目:  數學型態學影像處理應用  Morphological Image Processing  

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

二、作業環境:
1. Windows10
2. Visual Studio 2017
3. OpenCV 3.4.3

三、程式說明:
1. GaussianBlur()濾波去噪聲
2. ThresholdSobel做二值化
3. 做三種變化Dilate膨脹、Erode腐蝕、Morph變形
4. findContours找到外輪廓
5. drawContours繪製出輪廓

四、執行結果:
原始圖片
Erode
Dilate
Morph

棋子數量比較:

原始
24
31
31
Erode
24
35
11
Dilate
24
35
11
Morph
24
35
11


1053340-影像處理概論作業6


影像處理概論作業6
 1053340曾彥珩

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


使用環境:
  1. windows 10
  2. opencv-python 4.2.0
  3. python 3.7

實作方法:
  1. 使用imread()讀取灰階圖片並二值化
  2. 使用getStructuringElement()取得侵蝕參數
  3. 使用erode()侵蝕圖片來分開棋子。
  4. 使用findContours()偵測輪廓
  5. 使用len()取得棋子個數
執行結果:













2020年7月1日 星期三

1063344影像處理作業6

  1. 作業題目:
  2. 請撰寫一個程式,利用數學型態學影像處理運算(erode(), dilate()等函式),計算出所附 圖像(共三張)每張圖像中圍棋個數。
    a. 請在部落格呈現經由數學型態學影像處理運算後的圖像,同時要呈現你程式輸出棋子數量的螢幕截圖。
    b. 程式不一定可以算出正確棋子數量,越接近正確答案越好! 
    環境架設:matplotlib
                        Python 3.6
               numpy
      實作方法:
      imread 讀取灰階的圖片,再使cv2.getStructuringElement在試驗之後取得適當的kenel大小,對圖片進行二值化,先用cv2.dilate對其進行膨脹效果 ,再使用cv2.morphologyExopening,最後使用cv2.findContours找出邊界
      執行結果:




1063330 影像處理作業6


一、作業要求:
    請撰寫一個程式,利用數學型態學影像處理運算(erode(), dilate()等函式),計算出所      附圖像(共三張)每張圖像中圍棋個數。
a.請在部落格呈現經由數學型態學影像處理運算後的圖像,同時要呈現你程式輸出棋子數量的螢幕截圖。 
b.程式不一定可以算出正確棋子數量,越接近正確答案越好
二、使用工具:
    Python3.7.4
    OpenCV 4.2.0
    Numpy 1.16.4
三、實作方法:
1.  使用imread()以灰階形式讀取圖片
2.  使用threshold()函式進行二值化。將threshold分別設為130120120
3.  使用getStructuringElement()函式,kerne分別設為(250250)(100, 100)
     (150, 150)
4.  使用erode()函式對二值化圖片進行侵蝕後,使用dilate()把圖片膨脹
5.  使用findContours()函式及drawContours()函式對棋子個數進行運算
6.  使用imshow()印出所有圖片
四、實作成果:

預測結果與實際結果:-4、-3、0

1051318 影像處理作業6

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

結果:
  1. 讀檔以後轉成灰階
  2. 再以cv2.threshold二值化
  3. getStructuringElement尋找物件的核
  4. morphologyEx內建開運算,去除陰影重疊
  5. cv2.findContours尋找物件





1063338 影像處理作業6

  1. 作業題目:
  2. 請撰寫一個程式,利用數學型態學影像處理運算(erode(), dilate()等函式),計算出所附 圖像(共三張)每張圖像中圍棋個數。
    a. 請在部落格呈現經由數學型態學影像處理運算後的圖像,同時要呈現你程式輸出棋子數量的螢幕截圖。
    b. 程式不一定可以算出正確棋子數量,越接近正確答案越好! 
    1. 環境架設:
    • Anaconda 
    • Python 3.6
    • Spyder 4.1.2
    1. 實作方法:
      1. 利用imread 讀取灰階的圖片
      2. 利用cv2.getStructuringElement在試驗之後取得適當的kenel大小
      3. 藉由cv2.threshold對圖片進行二值化
      4. 先用cv2.dilate對其進行膨脹效果 再使用cv2.morphologyExopening
      5. cv2.findContours找出邊界
      6. cv2.drawContours畫出邊界
    2. 執行結果:



1043306 影像處理作業 6


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

2.使用環境
         - Eclipse IDE for Java Developers
         - opencv4.2.0
3.程式流程
(1) Imgcodecs.imread() => 讀取圖片
(2) Imgproc.cvtColor() => 轉換圖片色域
(3) Imgproc.threshold() => 對圖片做二值化
(4) Imgproc.getStructuringElement() => 得到圖片的mask
(5) Imgproc.erode() => 對圖片做侵蝕運算 iteration設為2
(6) Imgproc.dilate() => 對圖片做膨脹運算 iteration設為35
(7) System.out.println(contours.size()) => 得到偵測到的圍棋顆數
4.作業結果

圖一、













圖二、


圖三、















結果偵測結果:會發現圖一跟圖二都多偵測到了一顆,只有圖三的結果是正確的
可能是因為dilation導致黑色連接的部分太多,造成多偵測的結果