[OpenCV] 图像的几种滤波方式

简介: [OpenCV] 图像的几种滤波方式

一般我们在边缘检测中,因为需要对图像的质量要求较高,所以一般需要对图像进行滤波处理,常见的滤波处理有:均值平滑滤波、高斯滤波、中值滤波、双变滤波等。下面是实现代码:

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

图片就不放了,大家可以找一些图片对比一下,看看效果。

目录
相关文章
|
4天前
|
算法 计算机视觉
【Qt&OpenCV 图像的感兴趣区域ROI】
【Qt&OpenCV 图像的感兴趣区域ROI】
8 1
|
4天前
|
运维 算法 计算机视觉
【Qt&OpenCV 图像的模板匹配 matchTemplate/minMaxLoc】
【Qt&OpenCV 图像的模板匹配 matchTemplate/minMaxLoc】
6 1
|
4天前
|
存储 编解码 算法
【Qt&OpenCV 检测图像中的线/圆/轮廓 HoughLinesP/HoughCircles/findContours&drawContours】
【Qt&OpenCV 检测图像中的线/圆/轮廓 HoughLinesP/HoughCircles/findContours&drawContours】
15 0
|
4天前
|
算法 计算机视觉
【Qt&OpenCV 图像边缘检测 Sobel/Laplace/Canny】
【Qt&OpenCV 图像边缘检测 Sobel/Laplace/Canny】
6 0
|
4天前
|
算法 计算机视觉
【Qt&OpenCV 图像的形态学变换 morpholgyEx】
【Qt&OpenCV 图像的形态学变换 morpholgyEx】
3 0
|
4天前
|
算法 计算机视觉
【Qt&OpenCV 图像阈值操作 threshold】
【Qt&OpenCV 图像阈值操作 threshold】
7 0
|
4天前
|
资源调度 算法 计算机视觉
【Qt&OpenCV 图像平滑/滤波处理 -- Blur/Gaussian/Median/Bilateral】
【Qt&OpenCV 图像平滑/滤波处理 -- Blur/Gaussian/Median/Bilateral】
13 0
|
4天前
|
算法 计算机视觉
【Qt&OpenCV 图像缩放resize()】
【Qt&OpenCV 图像缩放resize()】
7 0
|
9天前
|
算法 计算机视觉 Python
openCV 3计算机视觉 Python语言实现 笔记 第三章 使用OpenCV 3处理图像
openCV 3计算机视觉 Python语言实现 笔记 第三章 使用OpenCV 3处理图像
|
16天前
|
存储 编解码 API
【图像文本化】Base64编解码OpenCV4中 Mat 对象
【图像文本化】Base64编解码OpenCV4中 Mat 对象
14 0