1.作業說明
撰寫一個程式(a)在一張圖片中將上雜訊,(b)設計方法將雜訊去除。
(a) 說明加上的雜訊類型(Gaussian, Uniform, Salt-and-Pepper 等)與數量(20%, 50%等)
(b) 說明所設計去除雜訊的方法
(a) 說明加上的雜訊類型(Gaussian, Uniform, Salt-and-Pepper 等)與數量(20%, 50%等)
(b) 說明所設計去除雜訊的方法
2.使用環境
- Eclipse IDE for Java Developers
- opencv4.2.0
3.實作方法
- 高斯雜訊
(1) 用一個與原圖大小及型態相同的Mat gussian_noise以儲存高斯雜訊的資訊
(2) Core.StdDev()得到原圖中的mean平均值及std標準差
(3) Core.randn()把mean跟std的數據以20%或50%的大小儲存至gussian_noise
(4) 用Core.add把gussian_noise整個數據套用到source上
(5) 用Imgcodecs.Imwrite()寫入至新的檔名
- 椒鹽雜訊
(1) noise_coeff 表示雜訊大小(20%或50%)
(2) 以雙層迴圈的方式掃過整張圖,對每個圖進行pixel的修改
(3) 若一個隨機產生的數字小於noise_coeff,就把掃到的pixel修改成0或255
- 高斯平滑
Imgproc.GaussianBlur()
- 均值平滑
- Imgproc.medianBlur()
4.顯示結果
原圖:
高斯雜訊(20%) 高斯雜訊(50%)
椒鹽雜訊(20%) 椒鹽雜訊(50%)
高斯平滑(20%高斯雜訊、50%高斯雜訊、20%椒鹽雜訊、50%椒鹽雜訊)
平均平滑(20%高斯雜訊、50%高斯雜訊、20%椒鹽雜訊、50%椒鹽雜訊)
對於經過平均平滑跟高斯平滑處理雜訊過後的圖片,比較滿意的都是有20%高斯雜訊,其他都覺得沒有很還原圖片,尤其是對50%椒鹽雜訊做平均平滑的圖片,還有很明顯的雜訊,而平均平滑如果ksize值設定太高又會失去照片原有的面貌,感覺不太適合做椒鹽雜訊的處理
沒有留言:
張貼留言