图像处理之滤波器

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;

}

你可能感兴趣的:(图像处理)