Dưới đây là một ví dụ sử dụng API C và IplImage:
#include "opencv2/imgproc/imgproc_c.h"
#include "opencv2/highgui/highgui_c.h"
int main()
{
IplImage* img = cvLoadImage("input.jpg", 1);
IplImage* dst=cvCreateImage(cvGetSize(img),IPL_DEPTH_8U,3);
cvSmooth(img, dst, CV_BLUR);
cvSaveImage("filtered.jpg",dst);
}
Để biết thông tin về những gì các thông số của hàm cvSmooth bạn có thể xem cvSmooth Documentation.
Nếu bạn muốn sử dụng một mặt nạ lọc tùy chỉnh, bạn có thể sử dụng chức năng cvFilter2D
:
#include "opencv2/imgproc/imgproc_c.h"
#include "opencv2/highgui/highgui_c.h"
int main()
{
IplImage* img = cvLoadImage("input.jpg", 1);
IplImage* dst=cvCreateImage(cvGetSize(img),IPL_DEPTH_8U,3);
double a[9]={ 1.0/9.0,1.0/9.0,1.0/9.0,
1.0/9.0,1.0/9.0,1.0/9.0,
1.0/9.0,1.0/9.0,1.0/9.0};
CvMat k;
cvInitMatHeader(&k, 3, 3, CV_64FC1, a);
cvFilter2D(img ,dst, &k,cvPoint(-1,-1));
cvSaveImage("filtered.jpg",dst);
}
Những ví dụ này sử dụng OpenCV 2.3.1.
Tôi không chắc chắn chính xác bạn muốn nói gì. Low-pass thường có nghĩa là tần số thấp ... vì vậy bạn có nghĩa là kết thúc nhất định của quang phổ màu? – thecoshman
Để biết thêm thông tin: http://paulbourke.net/miscellaneous/imagefilter/ – Ojtwist