快速双边滤波源码「建议收藏」

%FastBilateralFilterUsingRaisedCosines%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%inImg:grayscaleimage%sigma1:widthofspatialGaussian%sigma2:widthofrangeGaussian%[-w,w]^…

大家好,又见面了,我是你们的朋友全栈君。

快速双边滤波源码「建议收藏」

% Fast Bilateral Filter Using Raised Cosines

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%  inImg        :  grayscale image
%  sigma1      : width of spatial Gaussian
%  sigma2      : width of range Gaussian
%  [-w, w]^2  : domain of spatial Gaussian
%  tol             : truncation error
%
%  Author:    Kunal N. Chaudhury.
%  Date:        March 1, 2012.
%  Modified:  June 21, 2014.
%
%  References:
%  [1] K.N. Chaudhury, D. Sage, and M. Unser, “Fast O(1) bilateral
%  filtering using trigonometric range kernels,” IEEE Trans. Image Proc.,
%  vol. 20, no. 11, 2011.
%
% [2] K.N. Chaudhury, “Acceleration of the shiftable O(1) algorithm for
% bilateral filtering and non-local means,”  IEEE Transactions on Image Proc., 
% vol. 22, no. 4, 2013.
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% load test image
clc, clear all, close all force;
Img    =  double( imread(‘./images/ckb.jpg’) );
[m, n] = size(Img);

% create noisy image (additive Gaussian noise)
sigma  =  20;
inImg  =  Img + sigma * randn(m, n);

% filter parameters
sigma1 = 4;
sigma2 = 30;
tol        = 0.01;

% Set window for spatial Gaussian
w  = 6*sigma1;
if (mod(w,2) == 0)
    w  = w+1;
end

% call bilateral filter
tic;
[outImg, param] =  shiftableBF(inImg, sigma1, sigma2, w, tol);
toc;

% plot results
T  = param.T;
N  = param.N;
M  = param.M;
gamma  =  1 / (sqrt(N) * sigma2);
twoN   =  2^N;

warning(‘off’); %#ok<WNOFF>

s  = linspace(-T, T, 200);
g  = exp( -s.^2 / (2 * sigma2 *sigma2) );
gApprox  = cos(gamma * s).^N;
if M ==  0
    gTrunc = gApprox;
else
    gTrunc = zeros( 1, length(s) );
    for k = M : N – M
        gTrunc = gTrunc + (nchoosek(N, k) / twoN) * …
            cos( (2*k – N) * gamma * s  );
    end
end

figure(‘Units’,’normalized’,’Position’,[0 0.5 1 0.5]);
plot(s, g, ‘b’);
hold on,
plot(s, gApprox, ‘m’),
hold on,
plot(s, gTrunc, ‘r’);
axis(‘tight’), grid(‘on’),
legend(‘Gassian’,’Raised cosine’,’Truncated raised cosine’,’FontSize’, 10);
title(‘Comparison of the range kernels’, ‘FontSize’, 10),

peak  = 255;
PSNR0 = 10 * log10(m * n * peak^2 / sum(sum( (inImg – Img).^2)) );
PSNR1 = 10 * log10(m * n * peak^2 / sum(sum((outImg – Img).^2)) );

figure(‘Units’,’normalized’,’Position’,[0 0.5 1 0.5]);
colormap gray,
subplot(1,3,1), imshow(uint8(Img)),
title(‘Original’, ‘FontSize’, 10), axis(‘image’, ‘off’);
subplot(1,3,2), imshow(uint8(inImg)),
title([ ‘Noisy, ‘, num2str(PSNR0, ‘%.2f’), ‘dB’] , ‘FontSize’, 10),
axis(‘image’, ‘off’);
subplot(1,3,3), imshow(uint8(outImg)),
title([ ‘Filtered, ‘, num2str(PSNR1, ‘%.2f’), ‘dB’] , ‘FontSize’, 10),
axis(‘image’, ‘off’);

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/127397.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pycharm有什么好用的插件_pycharm插件推荐

    pycharm有什么好用的插件_pycharm插件推荐目录一、安装二、导入及设置三、使用一、安装在全局环境中(不要在虚拟环境中安装pipinstallautopep8二、导入及设置在PyCharm导入这个工具,具体设置如下图:Name:AutoPep8Description:autopep8yourcodeProgram:autopep8Arguments:–in-place–aggressive–aggressive$FilePath$Workingdirectory:$ProjectFileDir$

    2022年8月29日
    3
  • 编hadoop-1.X源代码

    编hadoop-1.X源代码

    2022年1月11日
    49
  • 百度搜索引擎中的快照及快照更新机制「建议收藏」

    百度搜索引擎中的快照及快照更新机制「建议收藏」百度搜索引擎中的快照及快照更新机制   1、什么是百度快照?  如果无法打开某个搜索结果,或者打开速度特别慢,该怎么办?“百度快照”能帮您解决问题。每个被收录的网页,在百度上都存有一个纯文本的备份,称为“百度快照”。百度速度较快,您可以通过“快照”快速浏览页面内容。不过,百度只保留文本内容,所以,那些图片、音乐等非文本信息,快照页面还是直接从原网页调用。如果您无法连接原网页,那么…

    2022年9月28日
    2
  • 微信开放平台开发第三方授权登陆(一):开发前期准备

    微信开放平台开发第三方授权登陆(一):开发前期准备据微信开放平台“开发资源”中网站应用微信登陆功能开发指南描述:进行授权登陆接入前,需要先注册一个开发者账号,并拥有一个已经审核通过的网站应用,并获取AppID和APPSecret,然后申请微信登陆并通过审核后,可以接入流程进行开发。据开发者资质认证处介绍:开发者资质认证通过后,微信开放平台帐号下的应用,将获得微信登录、智能接口、第三方平台开发等高级能力。所以在微信第三方授权登陆获取用户信息…

    2022年5月11日
    56
  • hexo博客搭建及主题优化(二)

    hexo博客搭建及主题优化(二)crystalBlog上篇hexo博客搭建及主题优化(一)主题优化二21.网站log设置主题目录下的_config.yml配置文件中:#配置网站favicon和网站LOGO##本地#favicon:/favicon.png#logo:/medias/logo.png#此处我用的CDN,也可以使用本地文件favicon:https://cdn.jsdelivr.net/gh/guixinchn/image/blog/favicon.pnglogo:https://cdn

    2022年9月20日
    3
  • c#开发微信公众平台_小程序开发教程

    c#开发微信公众平台_小程序开发教程本文转自http://www.wuling365.com/Article/View.aspx?Id=30  想学习微信开发技术请加入我们!郴州微信开发QQ群:587978628  最近在开发“郴州微信营销”系统,网络上涉及微信开发的代码99%都是PHP写的,由于本人不想再学习PHP,于是决定用C#开发。现将开发过程及一些实现细节记录下来,供大家参考。由于本人能力有限,错误之处在所难免,欢

    2022年8月20日
    9

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号