Oli*_*s_j 5 opencv filtering image-processing
我想知道如何在IplImage上的opencv中执行低通滤波器.例如"boxcar"或类似的东西.
我用谷歌搜索了它,但我找不到一个明确的解决方案.如果有人能给我一个例子或指出我如何在opencv或javacv中实现这一点,我将不胜感激.
Thx提前.
以下是使用 C API 和 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);
}
Run Code Online (Sandbox Code Playgroud)
有关 cvSmooth 函数的参数的信息,您可以查看cvSmooth 文档。
如果您想使用自定义过滤器蒙版,可以使用以下功能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);
}
Run Code Online (Sandbox Code Playgroud)
这些示例使用 OpenCV 2.3.1。