1. 程式人生 > >opencv3.0 影象濾波方式程式碼實現

opencv3.0 影象濾波方式程式碼實現

#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;
}