python代碼:
import
C++代碼:
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main(int artc, char** argv) {
Mat src = imread("./test.png");
if (src.empty()) {
printf("could not load image...n");
return -1;
}
namedWindow("input", CV_WINDOW_AUTOSIZE);
imshow("input", src);
Mat dst1, dst2;
blur(src, dst1, Size(5, 5), Point(-1, -1), 4);
GaussianBlur(src, dst2, Size(5, 5), 15, 0, 4);
imshow("blur", dst1);
imshow("gaussian blur", dst2);
waitKey(0);
return 0;
}
均值模糊 是卷積核的系數完全一緻,高斯模糊考慮了中心像素距離的影響,對距離中心像素使用高斯分布公式生成不同的權重系數給卷積核,然後用此卷積核完成圖像卷積得到輸出結果就是圖像高斯模糊之後的輸出。
OpenCV高斯模糊 API函數 void GaussianBlur( InputArray src, OutputArray dst, Size ksize, // Ksize為高斯濾波器視窗大小 double sigmaX, // X方向濾波系數 double sigmaY=0, // Y方向濾波系數 int borderType=BORDER_DEFAULT // 預設邊緣插值方法 )
當Size(0, 0)就會從sigmax開始計算生成高斯卷積核系數,當時size不為零是優先從size開始計算高斯卷積核系數
OpenCV學習筆記代碼,歡迎follow:
MachineLP/OpenCV-github.com