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

2020年6月3日 星期三

1061453 影像處理作業5

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


使用環境:
Visual studio 2017
opencv 3.4.2

實作方法:
1.imread讀取原圖並存進src
2.將src複製成兩分,gaussian添加gaussian noise,salt_pepper添加salt and pepper
3.定義兩個副函式,一個隨機選擇圖片中的列跟行,將值改為0(添加pepper),另一副函式則改為255(添加salt),
第一個參數為Mat,第二個為salt 和 pepper的數量。
4.對salt_pepper使用第3部的兩個副函式並印出來,數量為8000
5.利用randn函式做出一個gaussian noise矩陣,大小跟讀入的圖一樣,並且兩張相加
得到添加gaussian noise後的矩陣後印出來
6.利用cv::medianBlur對salt_pepper做中值平滑,參數為讀入的圖輸出的圖模板大小(須為奇數),做完後印出圖案
7.利用cv::GaussianBlur對gaussian做高斯平滑,參數為讀入的圖輸出的圖模板大小、高斯x軸的標準差、高斯y軸的標準差
(若兩個都設為0則會自動計算標準差),在這邊模板大小的size社的越大效果越好,但是執行時間越長。
8.將做完GaussianBlur的圖片印出

四、執行結果
原圖:




執行結果:左上為salt and pepper,右上為gaussian,左下為salt and pepper做median blur,右下為gaussian做gaussianblur



2020年5月20日 星期三

1061453 影像處理作業 4

Skin Color Detection: 


利用你所學的顏色的知識,撰寫一個程式來偵測一張輸入照片中的皮膚區域並將其標
示出。 
環境說明:
Visual studio 2017
OpenCV 3.4.2


實作方法:


1. cvLoadImage()讀取圖片
2. 複製原圖
3. 將複製後的圖片轉到YCbCr色彩空間
4. 設置YCbCr色彩空間膚色cb的平均值為120,cr為155,以此兩參數偵測膚色範圍5. 將膚色區域改為白色,其餘改為黑色
6.利用imshow()印出原圖以及做完膚色偵測後的圖



2020年5月18日 星期一

1061453 影像處理作業 3

一、作業說明   

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

二、使用環境 

        - Visual Studio 2017 
        - opencv3.4.1

三、實作方法

          -imread讀取圖像,以灰階模式讀取
          -getOptimalDFTSize()取得最合適的dft尺寸
          -copyMakeBorder()增大矩陣大小
     -dft()離散傅立葉轉換
                         -magnitude()用來求頻譜,將此步驟改為phase()即可求得相位
     -normalize()正規化

四、執行結果





從左到右分別為原圖 頻譜 及相位

2020年4月8日 星期三

1061453 影像處理作業2

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

環境
 1.Visual Studio 2017
 2.opencv 3.4.1

實作方法
1.imread用灰階模式讀圖
2.利用threshold並調整數後將圖片二值化
3.用Canny進行邊緣偵測
4.namedWindows創建新視窗
5.imshow輸出圖片到視窗上

執行結果:
圖片左邊皆為原圖,右邊為執行結果
二值化圖1及圖2:




2020年3月18日 星期三

1061453 影像處理作業1

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

環境:
visual studio 2017
opencv 3.4.1

實作方法:
 1.imread讀圖
 2.找出rows及cols,利用迴圈更改每個像素的三通道值
 3.使用者輸入v值
 4.利用imwrite存圖
 5.創建兩個視窗,一個輸出原圖,一個輸出修改後的圖

 原圖及+50比較: