% ------------------------------------------------------------------------
% Function: PURELET for Poisson image denoising
% ------------------------------------------------------------------------
% Usage 1: XHAT = PURELET( X, LET_ID, J )
%
% Input parameters:
% X = Poisson noisy input image
% LET_ID = LET ID; should be 0, 1, or 2. See [1].
% J = No. of Haar wavelet scales.
%
% Output parameters:
% XHAT = Estimated image
%
% Description: Denoises a Poisson-count noisy image using PURELET
% ------------------------------------------------------------------------
% References:
% [1] F. Luisier, C. Vonesch, T. Blu, M. Unser, "Fast Interscale Wavelet
% Denoising of Poisson-corrupted Images", Signal Processing, vol. 90,
% no. 2, pp. 415-427, February 2010.
% ------------------------------------------------------------------------
% Author: Sandeep Palakkal (sandeep.dion@gmail.com)
% Affiliation: Indian Institute of Technology Madras
% Created on: Feb 11, 2011
% Modified on: Feb 11, 2011
% ------------------------------------------------------------------------
function xhat = purelet( x, let_id, J )
h = [1 1];
g = [-1 1];
% [h g] = wfilters('haar');
Nor = 3;
xa = x;
delta = [];
bv_final = size( x );
for ii = 1:J
[xw bv] = wavedec2( xa, 1, h, g );
bv_final = [ bv(2,:) ; bv_final ];
ln_s = prod( bv(1,:) );
s = xw( 1:ln_s );
xa = reshape( s, bv(1,:) );
s = s(:);
T2 = 6 * abs( s ) + eps;
T2_m = 6 * abs(s-1) + eps;
T2 = [ T2; T2; T2 ];
T2_m = [ T2_m; T2_m; T2_m ];
d = xw( ln_s + 1 : end );
d = d(:);
d_p = d + 1;
d_m = d - 1;
mask_0 = 1 - exp( -0.5 * d.^2 ./ T2 );
mask_p_0 = 1 - exp( -0.5 * d_p.^2 ./ T2_m );
mask_m_0 = 1 - exp( -0.5 * d_m.^2 ./ T2_m );
theta_0 = [ d mask_0 .* d ];
theta_p_0 = [ d_p mask_p_0 .* d_p ];
theta_m_0 = [ d_m mask_m_0 .* d_m ];
if let_id == 0
theta_all = theta_0;
theta_m_all = theta_m_0;
theta_p_all = theta_p_0;
else
d_tilde_1 = fast_cconv2(xa,[-1 0 1]');
d_tilde_2 = fast_cconv2(xa,[-1 0 1]);
d_tilde_3 = fast_cconv2(d_tilde_2,[-1 0 1]');
d_tilde_1 = d_tilde_1(:);
d_tilde_2 = d_tilde_2(:);
d_tilde_3 = d_tilde_3(:);
theta_1 = [ theta_0 [d_tilde_1; d_tilde_2; d_tilde_3] ];
theta_p_1 = [ theta_p_0 [d_tilde_1; d_tilde_2; d_tilde_3] ];
theta_m_1 = [ theta_m_0 [d_tilde_1; d_tilde_2; d_tilde_3] ];
end
if let_id == 1
theta_all = theta_1;
theta_m_all = theta_m_1;
theta_p_all = theta_p_1;
elseif let_id == 2
f = exp( -(-3:3).^2 / 2 ) / sqrt( 2*pi );
f = f.' * f;
p1 = fast_cconv2( reshape( abs( d_tilde_1 ), bv(1,:) ), f );
p2 = fast_cconv2( reshape( abs( d_tilde_2 ), bv(1,:) ), f );
p3 = fast_cconv2( reshape( abs( d_tilde_3 ), bv(1,:) ), f );
p = [p1(:); p2(:); p3(:)];
theta_2 = zeros(size(d,1),6);
theta_p_2 = zeros(size(d,1),6);
theta_m_2 = zeros(size(d,1),6);
for kk = 1:3
mask_2 = 1 - exp( -1/12 * p.*p ./ abs( [s;s;s] + eps ) );
mask_p_2 = 1 - exp( -1/12 * p.*p ./ (abs([s;s;s] - 1) + eps));
% mask_2 = [mask_2; mask_2; mask_2];
% mask_p_2 = [mask_p_2; mask_p_2; mask_p_2];
theta_2(:,kk) = ( 1 - mask_2 ).* theta_1(:,kk);
theta_2(:,kk+3) = mask_2 .* theta_1(:,kk);
theta_p_2(:,kk) = ( 1 - mask_p_2 ).* theta_p_1(:,kk);
theta_p_2(:,kk+3) = mask_p_2 .* theta_p_1(:,kk);
theta_m_2(:,kk) = ( 1 - mask_p_2 ).* theta_m_1(:,kk);
theta_m_2(:,kk+3) = mask_p_2 .* theta_m_1(:,kk);
end
theta_all = theta_2;
theta_m_all = theta_m_2;
theta_p_all = theta_p_2;
elseif let_id > 2
error( 'Inappropriate LET_ID' );
end
for jj = Nor:-1:1
ln_jj = (jj-1)*ln_s + 1 : jj*ln_s;
theta = theta_all( ln_jj, : );
theta_m = theta_m_all( ln_jj, : );
theta_p = theta_p_all( ln_jj, : );
M = theta.' * theta;
c = 0.5 * ( d(ln_jj).' * ( theta_m + theta_p ) + s.' * (theta_m - theta_p ) );
c = c(:);
% pinv(M);
a = pinv(M) * c;
% a = [1 0]';
delta = [theta * a; delta];
end
end
bv_final = [ bv(1,:); bv_final ];
xhat_w = [xa(:); delta];
xhat = waverec2(xhat_w.', bv_final, h/2, fliplr(g)/2 );
end
没有合适的资源?快使用搜索试试~ 我知道了~
【图像去噪】基于快速小波变换实现泊松图像去噪算法研究附matlab代码 上传.zip
共10个文件
m:7个
png:1个
d3lphinview:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 2 下载量 59 浏览量
2022-10-29
09:17:27
上传
评论
收藏 729KB ZIP 举报
温馨提示
1.版本:matlab2019a,不会运行可私信 2.领域:基础教程 3.内容: 4.适合人群:本科,硕士等教研学习使用
资源推荐
资源详情
资源评论
收起资源包目录
【图像去噪】基于快速小波变换实现泊松图像去噪算法研究附matlab代码 上传.zip (10个子文件)
.d3lphinview 22B
cshift2.m 1KB
poisson_count.m 1KB
1.png 588KB
purelet.m 4KB
cameraman.tif 257KB
fast_cconv2.m 1KB
purelet_denoising_1.m 964B
cspin_purelet.m 2KB
psnr.m 533B
共 10 条
- 1
资源评论
- weixin_425992922024-01-12感谢资源主的分享,很值得参考学习,资源价值较高,支持!
- 柏林^雕像@cre2024-04-30资源不错,很实用,内容全面,介绍详细,很好用,谢谢分享。
天天Matlab科研工作室
- 粉丝: 3w+
- 资源: 7259
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Typescript和PHP的编程知识储备库设计源码 - study-php
- Screenshot_2024-05-28-11-40-58-177_com.tencent.mm.jpg
- 基于Dart的Flutter小提琴调音器APP设计源码 - violinhelper
- 基于JavaScript和CSS的随寻订购网页设计源码 - web-order
- 基于MATLAB的声纹识别系统设计源码 - VoiceprintRecognition
- 基于Java的微服务插件集合设计源码 - wsy-plugins
- 基于Vue和微信小程序的监理日志系统设计源码 - supervisionLog
- 基于Java和LCN分布式事务框架的设计源码 - tx-lcn
- 基于Java和JavaScript的茶叶评级管理系统设计源码 - tea
- IMG_5680.JPG
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功