纯净、安全、绿色的下载网站

首页|软件分类|下载排行|最新软件|IT学院

当前位置:首页IT学院IT技术

Opencv联合双边滤波 Opencv实现联合双边滤波

时光碎了天   2021-10-11 我要评论
想了解Opencv实现联合双边滤波的相关内容吗时光碎了天在本文为您仔细讲解Opencv联合双边滤波的相关知识和一些Code实例欢迎阅读和指正我们先划重点:Opencv联合双边滤波,Opencv双边滤波,Opencv滤波下面大家一起来学习吧。

1.介绍

双边滤波是一种可以保边去噪的滤波器主要是因为它的核比较特殊公式(1)为它的调用公式公式(2)为它的核公式其中大括号左边公式为空间域小核和高斯滤波器是一样的而大括号右边公式为值域小核(f表示取其灰度值)而对于联合双边滤波与双边滤波的区别主要在于值域小核所用到的图片如果所用到的图片是引入的另外一幅图像那么就是在使用联合双边滤波。

(1)

(2)

2.代码

此代码就是用联合双边滤波简单去一个噪声

#include<opencv2/opencv.hpp>
#include<ximgproc.hpp>
 
using namespace cv;
 
 
Mat addSaltNoise(const Mat srcImage, int n)
{
 Mat dstImage = srcImage.clone();
 for (int k = 0; k < n; k++)
 {
  //随机取值行列
  int i = rand() % dstImage.rows;
  int j = rand() % dstImage.cols;
  //图像通道判定
  if (dstImage.channels() == 1)
  {
   dstImage.at<uchar>(i, j) = 255;  //盐噪声
  }
  else
  {
   dstImage.at<Vec3b>(i, j)[0] = 255;
   dstImage.at<Vec3b>(i, j)[1] = 255;
   dstImage.at<Vec3b>(i, j)[2] = 255;
  }
 }
 for (int k = 0; k < n; k++)
 {
  //随机取值行列
  int i = rand() % dstImage.rows;
  int j = rand() % dstImage.cols;
  //图像通道判定
  if (dstImage.channels() == 1)
  {
   dstImage.at<uchar>(i, j) = 0;  //椒噪声
  }
  else
  {
   dstImage.at<Vec3b>(i, j)[0] = 0;
   dstImage.at<Vec3b>(i, j)[1] = 0;
   dstImage.at<Vec3b>(i, j)[2] = 0;
  }
 }
 return dstImage;
}
 
 
int main() {
 Mat src = imread("test.png", 1);
 src = addSaltNoise(src, 3000);
 
 Mat joint = imread("test.png", 0);
 
 Mat dst;
 int64 begin = cvGetTickCount();
 ximgproc::jointBilateralFilter(joint, src, dst, -1, 3, 9);
 int64 end = cvGetTickCount();
 
 float time = (end - begin) / (cvGetTickFrequency() * 1000.);
 printf("time= %fms\n", time);
 
 
 imshow("src", src);
 imshow("joint", joint);
 imshow("jointBilateralFilter", dst);
 waitKey(0);
 
 return 0;
}

原图:

噪声图:

导向图片:

结果图(去噪之后的图片和原图很接近呀)


相关文章

猜您喜欢

  • Java Mail 基于JavaMail的Java邮件发送

    想了解基于JavaMail的Java邮件发送的相关内容吗Sparks_t在本文为您仔细讲解Java Mail的相关知识和一些Code实例欢迎阅读和指正我们先划重点:Java,Mail,Java,邮件下面大家一起来学习吧。..
  • C语言信噪比SNR计算 C语言编程计算信噪比SNR理解学习

    想了解C语言编程计算信噪比SNR理解学习的相关内容吗Supre_yuan在本文为您仔细讲解C语言信噪比SNR计算的相关知识和一些Code实例欢迎阅读和指正我们先划重点:C语言编程,C语言计算信噪比SNR下面大家一起来学习吧。..

网友评论

Copyright 2020 www.Shellfishsoft.com 【贝软下载站】 版权所有 软件发布

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 点此查看联系方式