当前位置: 首页 > news >正文

opencv滤波算法总结

opencv平滑算法总结

1、高斯滤波

有大佬已经写的很好了,直接引用,备忘
链接: 高斯滤波

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

2、中值滤波

最终取值为卷积核的中值

3、均值滤波

最终取值为卷积核的均值

4、双边滤波

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

5、联合双边滤波

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


//高斯滤波
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)));}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • OTA升级
  • 壹嘉情,中国与世界经济文化交流的新桥梁
  • linux-Linux 内核与模块管理-内核模块管理
  • 【SQL】百题计划:SQL对于空值的比较判断。
  • Mac中Twig模版安装与SSTI漏洞学习
  • 【python】30、矩阵加法 tensor.sum
  • 基于DeepCFD模型和CNN/U-Net模型的流场预测
  • 一个简约的uniapp登录界面,基于uniapp+vue3+uview-plus
  • W25QXX系列Flash存储器模块驱动代码
  • 【读论文】End-to-end reproducible AI pipelines in radiology using the cloud
  • Android RecyclerView 缓存机制深度解析与面试题
  • 使用python操作数据库
  • mysql学习教程,从入门到精通,SQL 删除数据(DELETE 语句)(18)
  • PE-PINCodes 规则
  • Apache Spark — Repartition 与 Coalesce(调整数据集分区)
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • javascript 哈希表
  • JavaScript对象详解
  • JavaScript函数式编程(一)
  • Redis 中的布隆过滤器
  • swift基础之_对象 实例方法 对象方法。
  • Terraform入门 - 3. 变更基础设施
  • 创建一种深思熟虑的文化
  • 分布式事物理论与实践
  • 关于使用markdown的方法(引自CSDN教程)
  • 汉诺塔算法
  • 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  • 码农张的Bug人生 - 初来乍到
  • 排序算法学习笔记
  • 巧用 TypeScript (一)
  • 如何选择开源的机器学习框架?
  • 使用iElevator.js模拟segmentfault的文章标题导航
  • 微信开源mars源码分析1—上层samples分析
  • 小试R空间处理新库sf
  • 译自由幺半群
  • 【运维趟坑回忆录】vpc迁移 - 吃螃蟹之路
  • 阿里云ACE认证之理解CDN技术
  • 如何在招聘中考核.NET架构师
  • ​Python 3 新特性:类型注解
  • ​如何使用ArcGIS Pro制作渐变河流效果
  • # Redis 入门到精通(一)数据类型(4)
  • #define与typedef区别
  • #if等命令的学习
  • #VERDI# 关于如何查看FSM状态机的方法
  • #我与Java虚拟机的故事#连载12:一本书带我深入Java领域
  • (01)ORB-SLAM2源码无死角解析-(56) 闭环线程→计算Sim3:理论推导(1)求解s,t
  • (C语言)球球大作战
  • (Git) gitignore基础使用
  • (MIT博士)林达华老师-概率模型与计算机视觉”
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (续)使用Django搭建一个完整的项目(Centos7+Nginx)
  • (一)认识微服务
  • (转)eclipse内存溢出设置 -Xms212m -Xmx804m -XX:PermSize=250M -XX:MaxPermSize=356m