opencv滤波算法总结

opencv平滑算法总结

1、高斯滤波

有大佬已经写的很好了,直接引用,备忘

链接: 高斯滤波

按照正态分布概率,将卷积核内灰度值加权求出最终的灰度值

2、中值滤波

最终取值为卷积核的中值

3、均值滤波

最终取值为卷积核的均值

4、双边滤波

将高斯滤波和该灰度值的值域差值的加权进行联合,具有保边效果

5、联合双边滤波

获得高斯滤波卷积核A,然后高斯平滑,获取平滑后的值域差值获得卷积核 B, 然后将卷积核A B相乘,然后归一化,便可得到该位置的权重模板,将所得到的权重模板和该位置的邻域对应位置的值相乘,然后求和得到该位置的输出值

cpp 复制代码
//高斯滤波
int MainWindow::myGaussBlur(Mat& p_srcImg , Mat &p_dstImg)
{
    GaussianBlur(p_srcImg , p_dstImg , Size(15,5) , 2);
    return 0;
}
//中值滤波
int MainWindow::myMediaBlur(Mat& p_srcImg , Mat &p_dstImg)
{
    medianBlur(p_srcImg , p_dstImg , 1);
    return 0;
}
//均值滤波
int MainWindow::myBlur(Mat& p_srcImg , Mat &p_dstImg)
{
    blur(p_srcImg , p_dstImg , Size(5,5));
    return 0;
}
//双边滤波
int MainWindow::mybilaBlur(Mat& p_srcImg , Mat &p_dstImg)
{
    bilateralFilter(p_srcImg , p_dstImg,3,3,3);
    return 0;
}
//联合双边滤波
int MainWindow::myjoinBilaBlur(Mat& p_srcImg , Mat &p_dstImg)
{

    GaussianBlur(p_srcImg , p_dstImg , Size(5,5) , 2);
    return 0;
}


void MainWindow::on_comboBox_activated(int index)
{
    Mat srcImg = imread("D:\\5.jpg",0);
    if(srcImg.empty())
    {
        QMessageBox::information(this,"警告","图片读取失败,请检查图片路径!");
        return;
    }
    Mat t_dstImg;
    switch (index) {
    case 0:
        myGaussBlur(srcImg ,t_dstImg );
        break;
    case 1:
        myMediaBlur(srcImg ,t_dstImg );
        break;
    case 2:
        myBlur(srcImg ,t_dstImg );
        break;
    case 3:
        mybilaBlur(srcImg ,t_dstImg );
        break;
    default:
        break;
    }


    QImage qImg = QImage((unsigned char*)(t_dstImg.data), t_dstImg.cols,
                         t_dstImg.rows, t_dstImg.cols*t_dstImg.channels(), QImage::Format_Grayscale8);
    ui->label_2->resize(qImg.width() , qImg.height());
    ui->label_2->setPixmap(QPixmap::fromImage(qImg.scaled(ui->label_2->size(), Qt::KeepAspectRatio)));


}
相关推荐
我材不敲代码8 小时前
OpenCV 光流估计实战:Lucas-Kanade 算法实现运动目标跟踪
opencv·算法·目标跟踪
Sagittarius_A*1 天前
传统图像分割:阈值 / 区域生长 / 分水岭 / 图割全解析【计算机视觉】
图像处理·人工智能·python·opencv·计算机视觉·图像分割
sali-tec1 天前
C# 基于OpenCv的视觉工作流-章44-直线卡尺
图像处理·人工智能·opencv·算法·计算机视觉
入门工作者1 天前
opencv 轮廓内点集高速获取
人工智能·opencv·计算机视觉
我材不敲代码1 天前
OpenCV实现图像拼接融合——SIFT 特征点实现全景图拼接
人工智能·opencv·计算机视觉
格林威1 天前
工业相机图像采集处理:从 RAW 数据到 AI 可读图像,堡盟相机 C#实战代码深度解析
c++·人工智能·数码相机·opencv·算法·计算机视觉·c#
sali-tec2 天前
C# 基于OpenCv的视觉工作流-章43-轮廓匹配
图像处理·人工智能·opencv·算法·计算机视觉
Fleshy数模2 天前
玩转OpenCV:从角点检测到图像拼接的实战之旅
人工智能·opencv·计算机视觉
Daydreamer .2 天前
VisionMaster使用OpenCV发现的问题
opencv·c#·visionmaster
不懒不懒2 天前
【OpenCV 计算机视觉实战:从图像分割到特征匹配,全流程实战教程】
人工智能·opencv·计算机视觉