之前若是环境变量配置过可以检查一下是否正确,因为我自己调试时又出现如下错误:
解决办法:找到你的opencv路径,我的是E:hhh/opencv/buid/x86/vc11/bin,找到缺失的dll,将其复制到以下路径
C:windows/system32
C:windows/sysWOW64
运行即可执行程序。
1.首先我们找到一张有噪点的图片,然后新建一个c程序,将图片复制到此c程序下:
2.网上有处理滤波图像的代码,我就直接复制了(因为我菜,自己不会),附上原作者连接:原代码地址
#include
#include<opencv/cv.h>
#include<opencv2/opencv.hpp>
using namespace std;
int main()
{
string imName = "lena.jpg";
cv::Mat im = cv::imread(imName);
cv::imshow("原图",im);
cv::Mat imGs = im.clone();
int kSize = 21;
cv::Mat outim;
cv::blur(imGs, outim, cv::Size(kSize, kSize), cv::Point(-1,-1));//均值平滑滤波
cv::imshow("blur", outim);
cv::GaussianBlur(imGs, outim, cv::Size(kSize, kSize), 0, 0); //高斯滤波
cv::imshow("gsblur", outim);
cv::medianBlur(imGs, outim, kSize); //中值滤波
cv::imshow("median", outim);
cv::bilateralFilter(imGs, outim, kSize, kSize * 2, kSize/2); //双变滤波
cv::imshow("bilateral", outim);
cout << imGs.type() << endl;
IplImage *inData = cvCreateImage(imGs.size(), 8, imGs.channels());
IplImage *outData = cvCreateImage(imGs.size(), 8, imGs.channels());
*inData = IplImage(imGs);
cvSmooth(inData, outData, 4, 0);//双边滤波平滑
cv::Mat o = cv::cvarrToMat(outData);
cv::imshow("smooth", o);
cv::waitKey(0);
return 0;
}
3.执行程序后出现是分别经过高斯滤波、中值滤波、均值平滑滤波、双边滤波、双边滤波平滑