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

2020年7月2日 星期四

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. Threshold與Sobel做二值化
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


2020年6月3日 星期三

1051728 影像處理作業5

一、題目:
Image noise processing 
撰寫一個程式(a)在一張圖片中將上雜訊,(b)設計方法將雜訊去除。 
(a) 說明加上的雜訊類型(Gaussian, Uniform, Salt-and-Pepper 等)與數量(20%, 50%等) 
(b) 說明所設計去除雜訊的方法 
設計與測試多種雜訊分數越高 

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

三、程式說明:
1. 將圖片以灰階的圖片導入(CV_LOAD_IMAGE_GRAYSCALE)
2. Gaussian 方面參數設定為 μ = 128, σ = 20
3. Uniform方面: 以此函數randu(uniform_noise, 0, 255) ,取得隨機的uniform distribution數值
4. Impulse方面: 將 threshold value 定義為 250
5. Salt-and-Pepper方面: 將定義 black 為 noise < 30, white 為 noise > 255
(補充:為了避免過度降低圖片品質,每個noise都有乘上一個參數去減少noise對於原圖的影響)

四、執行結果:

說明
 灰階原圖

圖片
結果 
 

說明
Gaussian  Uniform
圖片
結果 
 
 
說明
  Impulse
Salt-and-Pepper
圖片
結果
 

2020年5月21日 星期四

1051728 影像處理作業4


HW4 Skin Color Detection
編譯環境:
1.      Windows 10
2.      Visual studio 2017
3.      Opencv 3.4.3

轉換條件與式子:
Convert RGB to YCrCb:
Y = 0.299R + 0.587G + 0.114B
Cr = (R-Y) * 0.713 + 128
Cb = (B-Y) * 0.564 + 128

YCrCb膚色範圍:
135 < Cr < 180
85 < Cb < 135
80 < Y

Convert RGB to HSV:
色相(H)是色彩的基本屬性,就是平常所說的顏色名稱,如紅色、黃色等。
飽和度(S)是指色彩的純度,越高色彩越純,低則逐漸變灰,取0 ~100%的數值。
明度(V)和亮度(L)取值0 ~ 100%。

HSV膚色範圍:
0 < H < 50
0.23 < S < 0.68


圖片的轉換過程與結果比較
原圖
HSV
YCrCb
HSV Skin
YCrCb Skin

2020年5月20日 星期三

1051728 影像處理作業3


HW3 離散傅立葉轉換DFT練習

編譯環境:

1. windows 10
2. visual studio 2017
3. opencv 3.4.3

寫程式中遇到的問題:

輸出圖片的時候,若是直接只用imwrite輸出,只會得到全黑的圖片。因為imwrite在0到255之間,但經過轉換的圖像是在0到1的比例。因此為了擴大規模,所以使用了convertTo()這個函式。


轉換前後的比較:

轉換前

轉換後
















2020年4月9日 星期四

1051728 影像處理作業 2

Thresholding and Edge Detection

二值化與邊緣值偵測


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

補充說明:
圖片用灰階模式讀取即可,也可以讀取全彩圖像自己處理
imread("檔名", 0); // CV_LOAD_IMAGE_GRAYSCALE
請考量讓所有 QR code 正方形模組邊框完整呈現,並分別呈現兩階段結果
1. 二值化
2. 邊緣偵測

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

實作:
1. 用imread()讀取圖片
2. 用clone()複製一份圖片以免原始資料被覆蓋
3. 用threshold()將圖片二值化
4. 用sobel()和convertScaleAbs()求取 x 方向和 y 方向的梯度
5. 利用add()和convertScaleAbs()求取總梯度
6. 利用imwrite()儲存圖片

執行結果:
Figure2_1.jpg

原圖                                         二值化後                                邊緣偵測後



Figure2_2.jpg

原圖                                         二值化後                                  邊緣偵測後

2020年3月17日 星期二

1051728 影像處理作業1

作業題目:
撰寫一個程式從檔案讀取一張圖像,將圖像的每一個點像素的值各加上一個整數值 v (255  v 255)
,並將圖像儲存至一個新圖像檔案中。


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

原始圖片:



每一點的像素質增加125:


每一點的像素質減少125: