2020年6月2日 星期二

1061542 影像處理作業 5

一,作業題目:

撰寫一個程式(a)在一張圖片中將上雜訊,(b)設計方法將雜訊去除。(
a) 說明加上的雜訊類型(Gaussian, Salt-and-Pepper)
(b)說明所設計去除雜訊的方法

二,環境設置:
Python opencv

三,實作方式:
  1. 使用imread讀進圖片
  2. 創建高斯雜訊要使用的參數(mean, var, sigma)
  3. 利用np.random.normal及上述參數,創造出mask
  4. 將圖片加上上述mask,完成高斯雜訊
  5. 設定salt and pepper出現的比例,及數量
  6. 在圖片中加入設定好數量的salt and pepper
  7. 利用cv2.GaussianBlur來消除高斯雜訊
  8. 利用cv2.medianBlur來消除salt and pepper
四,圖片
原圖
高斯雜訊
高斯濾鏡
salt and pepper
median filter

1053362 影像處理作業 5

作業說明:
撰寫一個程式(a)在一張圖片中將上雜訊,(b)設計方法將雜訊去除。
(a)說明加上的雜訊類型(Gaussian, Salt-and-Pepper)
(b)說明所設計去除雜訊的方法

環境說明:
Visual studio 2019
OpenCV 4.2.0
Programming Language: C++

實作方法:
imread(".jpg") 讀圖
imshow 秀圖
使用class RNG在圖中隨機產生雜訊
salt&pepper pa = 0.1, pb = 0.05
gaussian variance = 40, mean = 0 
medianBlur 消除salt&pepper
GaussianBlur 消除gaussian noise

結果:
原圖

salt&pepper

消除salt&pepper

gaussian noise

消除gaussian noise

1051318 影像處理作業5

一、作業題目:
撰寫一個程式(a)在一張圖片中將上雜訊,(b)設計方法將雜訊去除。(
a) 說明加上的雜訊類型(Gaussian, Salt-and-Pepper)
(b)說明所設計去除雜訊的方法

二、環境設置: 
1.Python3
 2.opencv 3.1.0

三、實作方式:
1.cv2.imread讀取照片
2.randon.normal製造gaussian_noise需要的常態分佈亂數
3.讀取圖片高跟寬後加上高斯噪音
4.利用高斯filter濾波(cv2.bilateralFilter)
5.再嘗試利用中值和均值filter過濾(cv2.medianBlur+cv2.blur)
6.原圖加上胡椒噪音
7.利用中值filter過濾,殘留白點
8.再利用均值filter過濾,去除白點
四、執行結果:
原圖:
加入高斯噪音:
高斯filter過濾後:
對高斯噪音使用中值加均值filter:
胡椒與鹽噪音:
中值filter,殘留白點:
再用均值filter:

1061544 影像處理作業5

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

二、環境設置: 

1.Visual Studio 2017
 2.opencv 3.1.0

三、實作方式:

1.imread讀取照片
2.randn製造gaussian_noise
3.randu製造uniform_noise
4.threshold製造impulse_noise
5.將原圖分別加上20%, 50%的gaussian noise
6.將原圖分別加上20%, 50%的uniform noise
7.將原圖分別加上20%, 50%的impulse noise
8.分別使用GaussianBlur、medianBlur、blur函數去除雜質

四、執行結果:
     圖一、原圖

圖二、gaussian noise 20%

圖三、gaussian noise 50%

圖四、uniform noise 20%

圖五、uniform noise 50%

圖六、impulse noise 20%

圖七、impulse noise 50%

圖八、GaussianBlur

圖九、medianBlur

圖十、Blur

1050905 影像處理作業 5

1.作業題目:撰寫一個程式(a)在一張圖片中將上雜訊,(b)設計方法將雜訊去除。

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

3.實作:

(1)製造常態分佈亂數,使用以下公式
x = sqrt(-2.0 * log(u)) * cos(2.0 * M_PI * v) ;
其中 u, v 是0~1之間的亂數
加上標準差和和期望值會變成以下公式
X = sqrt(-2.0 * log(u)) * cos(2.0 * M_PI * v) * std + mean;

(2)這裡我門檻直設為2,尋訪圖片像素,並且計算X,如果X>2,BGR都設為255(白),
如果<-2,BGR設為0(黑),其他不變。然後就產生"胡椒鹽"了。

(3)我去雜訊的方法是每次造訪像素,取他周圍的8個像素包含自己共9個,然後取中位數來取代自己和周圍的像素的值,然後就產生"自己寫"了。

(4)直接用函式medianBlur,遮罩的值取3,產生"直接用函數",來比較"自己寫"的差異。
("自己寫"的圖片邊緣沒有處理到胡椒鹽)

4.結果:

1051434 影像處理作業5

採用salt and pepper 和高斯噪聲

原圖為此


salt and pepper


由salt and pepper 的特性可以得知噪點會是純黑或是純白
因此先對圖做一次處理 把純黑純白的點周圍的點做平均後帶入
之後再用medium filter 處理一次



高斯噪聲

mean 取 0.02  variance取0.002

嘗試過各種filter來對其進行denoising
但是最終還是medium filter的效果最好





1061537 影像處理作業 5

一、Image noise processing


撰寫一個程式(a)在一張圖片中加上雜訊,(b)設計方法將雜訊去除。

二、實作方法


加上雜訊:
1.  Gaussian noise: 使用randn()、mean=128、variance=20 產生雜訊,
     並將其70%雜訊加到src。
2.  Uniform noise:  使用randu()、Max=255、min=0 產生雜訊,
     並將其50%加到src。
3.  Salt and Pepper noise: 先使用randu()、Max=255、min=0 產生雜訊,
     再使用threshold()產生噪點,並將其20%加到src。

去除雜訊:
1.  平均濾波: 使用blur()、size(3,3) 來進行降噪。
2.  高斯濾波: 使用GaussianBlur()、size(7,7) 來進行降噪。
3.  中值濾波: 使用medianBlur()、size=3 來進行降噪。
4.  雙邊濾波: 使用bilateralFilter()、d=3 來進行降噪。

三、使用環境


1.  Windows 10
2.  Visual studio 2017
3.  OpenCV 3.4.0

四、執行結果


Gaussian_noise

Uniform_noise

salt_and_pepper_noise