目錄
- 一、高斯濾波
- 二、C++代碼
- 三、python代碼
- 四、結果展示
- 1、原始影像
- 2、5x5卷積
- 3、9x9卷積
一、高斯濾波
? ?高斯濾波是一種線性平滑濾波,適用于消除高斯噪聲,廣泛應用于影像處理的減噪程序, [1] 通俗的講,高斯濾波就是對整幅影像進行加權平均的程序,每一個像素點的值,都由其本身和鄰域內的其他像素值經過加權平均后得到,高斯濾波的具體操作是:用一個模板(或稱卷積、掩模)掃描影像中的每一個像素,用模板確定的鄰域內像素的加權平均灰度值去替代模板中心像素點的值,
二、C++代碼
#include <opencv2\opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
Mat img = imread("gauss_noise.png");
if (img.empty())
{
cout << "請確認影像檔案名稱是否正確" << endl;
return -1;
}
Mat result_5, result_9; //存放含噪聲濾波的結果,后面數字代表濾波器尺寸
//呼叫均值濾波函式blur()進行濾波
GaussianBlur(img, result_5, Size(5, 5), 0, 0);
GaussianBlur(img, result_9, Size(9, 9), 0, 0);
//顯示含有高斯噪聲影像
imshow("img_gauss", img);
//顯示去噪結果
imshow("result_5gauss", result_5);
imshow("result_9gauss", result_9);
waitKey(0);
return 0;
}
三、python代碼
import cv2
# ----------------------讀取圖片-----------------------------
img = cv2.imread('gauss_noise.png')
# ----------------------高斯濾波-----------------------------
result_5 = cv2.GaussianBlur(img, (5, 5), 0) # 5x5
result_9 = cv2.GaussianBlur(img, (9, 9), 0) # 9x9
# ----------------------顯示結果-----------------------------
cv2.imshow('origion_pic', img)
cv2.imshow('5x5_filtered_pic', result_5)
cv2.imshow('9x9_filtered_pic', result_9)
cv2.waitKey(0)
四、結果展示
1、原始影像

2、5x5卷積

3、9x9卷積

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/306242.html
標籤:python
上一篇:【Python爬蟲】15行代碼教你爬B站視頻彈幕,詞云圖展示資料(附原始碼)
下一篇:[Python]題集①
