opencv3.0 图像滤波方式代码实现

    xiaoxiao2021-03-25  57

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

    仅此作为笔记。

    转载请注明原文地址: https://ju.6miu.com/read-40369.html

    最新回复(0)