Author:Maddock
Date:2015-04-2514:59:04
转载请注明出去:http://www.cnblogs.com/adong7639/p/4453719.html
滤波器的原理很简单,通俗的说,对于二维数据,依照某一个核或者称之为模板扫描图像数据,将模板的数据和原始数据
按照一定的规则计算,获取新的图像数据。
Matlab 自带的滤波函数
edge fspecial 打开fspecial文件可以看到例子
I = imread('cameraman.tif');
subplot(2,2,1);imshow(I);title('Original Image');
H = fspecial('motion',20,45);
MotionBlur = imfilter(I,H,'replicate');
subplot(2,2,2);imshow(MotionBlur);title('Motion Blurred Image');
H = fspecial('disk',10);
blurred = imfilter(I,H,'replicate');
subplot(2,2,3);imshow(blurred);title('Blurred Image');
H = fspecial('unsharp');
sharpened = imfilter(I,H,'replicate');
subplot(2,2,4);imshow(sharpened);title('Sharpened Image');
opencv自带的滤波函数
#include "opencv2/imgproc/imgproc.hpp" #include "opencv2/highgui/highgui.hpp" using namespace std; using namespace cv; int main() { /// 载入原图像 Mat src = imread( "lena.jpg", 1 ); Mat dst1 = src.clone(); Mat dst2 = src.clone(); Mat dst3 = src.clone(); Mat dst4 = src.clone(); int ksize = 7; blur( src, dst1, Size( ksize, ksize ), Point(-1,-1) ); GaussianBlur( src, dst2, Size( ksize, ksize ), 0, 0 ); medianBlur ( src, dst3, ksize ); bilateralFilter(src, dst4, ksize, ksize*2, ksize/2 ); imshow("blur", dst1 ); imshow("GaussianBlur", dst2 ); imshow("medianBlur", dst3 ); imshow("bilateralFilter", dst4 ); waitKey(0); return 0; }