2020年5月31日 星期日

1053302 影像處理作業5



一、作業說明   

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


二、使用環境 


Visual Studio 2017 & opencv4.2.0


三、實作方法

1. imread讀入圖片
2. addSaltNoise()中會先隨機取值行列以及做通道判定並且撒上雜訊
3. generateGaussianNoise()生成高斯雜訊
4. addGaussianNoise()在圖像上面添加高斯雜訊
5. blur()對圖像做均值平滑
6. GaussianBlur()對圖像做高斯平滑
7. medianBlur()對圖像做中值平滑
8. bilateralFilter()對圖像做雙邊平滑


四、執行結果

(四種平滑: 均值平滑、高斯平滑、中值平滑、雙邊平滑)

(椒鹽雜訊10%+四種平滑)










(椒鹽雜訊20%+四種平滑)










(椒鹽雜訊50%+四種平滑)










(高斯雜訊+四種平滑)




1063329影像處理作業5

一、作業說明   

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

二、使用環境 

        - Visual Studio 2017 
        - opencv3.4.1

三、實作方法

          -imread讀取彩圖          -randn(InputOutputArray dst, InputArray mean, InputArray stddev)dst陣列做高斯分布隨機數           -randu(InputOutputArray dst, InputArray low, InputArray high)dst陣列做均勻分布隨機數
          -threshold(InputArray src, OutputArray dst, double thresh, double maxval, int type)將src陣列做二值化                   -將雜訊加入原圖像                    -fastNlMeansDenoising(InputArray src, OutputArray dst, float h=3, int templateWindowSize=7, int searchWindowSize=21 )將src圖像中的雜訊去除          -imshow在視窗裡顯示圖像

四、執行結果

1061528 影像處理作業5

一、作業題目:

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

二、使用環境:
Operation system: macOS
Programming language: Python 3.7.6
Library version: OpenCV 4.2.0

三、實作方法:
1.     Imread以灰階方式讀取圖片,並對圖片使用不同noise:
1.        random.normal()產生gaussian noise (mean = 0, var = 0.1)
2.        random.rayleigh()產生rayleigh noise (scale = 0.07)
3.        random.gamma()產生gamma noise (scale = 0.07)
4.        random.exponential()產生exponential noise (scale = 0.07)
5.        random.uniform()產生uniform noise (low = 0.4, high = 0.6)
6.        在圖片上以prob = 0.3的機率增加黑白點產生salt and pepper noise
2.     對所有noise分別使用adaptive median filter (window size不會增加)處理
3.     對所有noise分別使用三次median filter進行處理
4.     plt.show()輸出觀察差別

四、輸出結果:


2020年5月30日 星期六

1063344 影像處理作業5

一、作業題目:

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

二、使用環境:

Python 3.7.6
OpenCV 4.2.0
Numpy 1.18.2

三、實作方法:

對圖片增噪:
高斯噪聲:使用函式np.random.normal()
椒鹽噪音:使用函式np.random.choise(),椒噪聲與鹽噪聲比例為1:1
增加雜訊後,把圖片轉乘uint8

對圖片濾波:
高斯噪聲:使用中值濾波
椒鹽噪音-使用高斯濾波

 四、成果:                                                                         
原圖



高斯噪聲
高撕去噪
椒鹽噪聲
椒鹽去噪

1063332影像處理作業5


一、作業題目:

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

二、使用環境:

Visual Studio 2019
Python 3.7.6
OpenCV 4.2.0
Numpy 1.18.2
scikit-image(0.16.2)

三、實作方法:

對圖片產生的噪聲類型:
1.         高斯噪聲-使用函式np.random.normal()
2.         Rayleigh噪音-使用函式np.random.rayleigh()
3.         Gamma噪音-使用函式np.random.gamma()
4.         Exponential噪音-使用函式np.random.exponential()
5.         Uniform噪音-使用函式np.random.uniform()
6.         椒鹽噪音-使用函式skimage.util.random_noise()產生數量20%的椒鹽噪聲,椒噪聲與鹽噪聲比例為
        1:1

將噪聲加至圖片後,對圖片像素值做歸一化([0,255])及轉型為uint8

對各噪聲類型處理:
1.         高斯噪聲-使用中值及高斯濾波
2.         Rayleigh噪音-使用高斯濾波
3.         Gamma噪音-使用中值及高斯濾波
4.         Exponential噪音-使用高斯濾波
5.         Uniform噪音-使用中值及高斯濾波
6.         椒鹽噪音-使用中值濾波


 四、成果:

原圖:

左至右:噪聲/去噪聲 
Gaussian:
                                
Rayleigh:
                               
Gamma:
                                

Exponential:
                                       
Uniform:
                               
Salt & Pepper:
                                 







2020年5月29日 星期五

1051407 影像處理作業5

作業說明:

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

環境說明:
python 3.7.6
opencv-python 4.1.0.25 (https://pypi.org/project/opencv-python/)

執行方式:


結果:
    原圖
        


    加噪(Random) 隨機對圖片中的像素加噪

    加噪(Gaussian)

    加噪(Salt-and-Pepper)

    去噪
        使用四種方法去噪,依序為平均平滑、高斯平滑、中值濾波、雙邊濾波
        針對 Random noise 去噪

        針對 Gaussian noise 去噪

        針對 Salt-and-Pepper noise 去噪

2020年5月21日 星期四

1053340 影像處理作業 3


1053340 影像處理作業 3
作業題目:
離散傅立葉轉換 DFT 練習 :
 請撰寫一個程式,讀取一張 256 色灰階圖像(圖像大小適中以免執行時間太久)。計算輸
入圖的離散傅立葉轉換結果,並將頻譜大小與相位角度各以灰階 256 色圖像方式呈現
出。

使用環境:
- Spyder(Python3.7)
- opencv-python 4.2.0

方法:
1. 將原始圖片以灰階讀入
2. np.fft.fft2()將圖片進行傅立葉轉換
3. np.fft.fftshift()將圖移到中間位置
4. 取絕對值:將複數變化成實數、取對數的目的為了將數據變化到較小的範圍(例如0-255
5. np.log()頻譜圖
6. np.angle()取得相位圖
7. plt顯示圖片


執行結果:
原圖:

結果: