【图像重建】基于字典学习 W-KSVD图像低秩重建含Matlab源码
【图像重建】基于字典学习 W-KSVD图像低秩重建含Matlab源码
TT_Matlab
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,完整matlab代码或者程序定制加qq1575304183。
1 简介
基 于超 完备字典的 图像稀疏表 示因其具有稀疏性、特征保持性 、可分性等特 点而被广 泛应用 于图像 处理 。本文利用 W-KSVD字典 学习算法并应用于 MR图像重建 。将 字典 学习等价于一 个二次规 划 问题 ,学习得到 的字典能有效描述图像特征。基于学习所得的字典,获得图像的稀疏表示,并重建原始图像.
2 部分代码
%==========================================================================
% 函数功能: 显示图像块的字典-显示原子用NxM的网格
% 输入参数:D - 字典
% sz - 图像块的大小
% n,m - 网格区域的大小
% varargin -其它参数
% - lines:用黑线隔开字典原子
% - whitelines:用白线隔开字典原子
% - highcontrast:增加显示的对比度
% 输出参数:x - 返回字典图像的位矩阵
%==========================================================================
function x = showdict(D,sz,n,m,varargin)
% -------------------------- 检查输入参数 ----------------------------------
if
(size(D,
2
) < n*m)
D = [D zeros(size(D,
1
),n*m-size(D,
2
))];
end
linewidth =
1
;
highcontrast =
0
;
drawlines =
0
;
linecolor =
0
;
for
i =
1
:length
(varargin)
if
(~ischar(varargin{i}))
continue;
end
switch(varargin{i})
case
’highcontrast’
highcontrast =
1
;
case
’lines’
drawlines =
1
;
case
’whitelines’
drawlines =
1
;
linecolor =
1
;
case
’linewidth’
linewidth = varargin{i+
1
};
end
end
% ------------------------ 生成字典图像 ------------------------------------
if
(drawlines)
D = [D ; nan(sz(
1
)*linewidth,size(D,
2
))];
sz(
2
) = sz(
2
)+linewidth;
x = col2im(D(
:
,
1
:n*m
),sz,[n m].*sz,
’distinct’
);
sz = [sz(
2
) sz(
1
)];
D = im2col(x
’,sz,’
distinct
’);
D = [D ; nan(sz(1)*linewidth,size(D,2))];
sz(2) = sz(2)+linewidth;
x = col2im(D(:,1:n*m),sz,[m n].*sz,’
distinct
’);
x = x’
;
x = x(
1
:end-linewidth
,
1
:end-linewidth
);
if
(highcontrast)
for
i =
0
:n-
1
for
j =
0
:m-
1
x(i*sz(
1
)+
1
:i*sz
(
1
)+sz(
1
)-linewidth, j*sz(
2
)+
1
:j*sz
(
2
)+sz(
2
)-linewidth) = ...
imnormalize(x(i*sz(
1
)+
1
:i*sz
(
1
)+sz(
1
)-linewidth, j*sz(
2
)+
1
:j*sz
(
2
)+sz(
2
)-linewidth));
end
end
else
x = imnormalize(x);
end
x(isnan(x)) = linecolor;
else
x = col2im(D(
:
,
1
:n*m
),sz,[n m].*sz,
’distinct’
);
if
(highcontrast)
for
i =
0
:n-
1
for
j =
0
:m-
1
x(i*sz(
1
)+
1
:i*sz
(
1
)+sz(
1
), j*sz(
2
)+
1
:j*sz
(
2
)+sz(
2
)) = ...
imnormalize(x(i*sz(
1
)+
1
:i*sz
(
1
)+sz(
1
), j*sz(
2
)+
1
:j*sz
(
2
)+sz(
2
)));
end
end
else
x = imnormalize(x);
end
end
if
(nargout==
0
)
imshow(x);
end
3 仿真结果
4 参考文献
[1]穆瑞娟, 徐胜南, 王春兴. 基于低秩约束和字典学习的图像超分辨率重建[J]. 山东师范大学学报:自然科学版, 2016, 31(4):7.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
-
2023年血糖新标准公布,不是3.9-6.1,快来看看你的血糖正常吗? 2023-02-07
-
2023年各省最新电价一览!8省中午执行谷段电价! 2023-01-03
-
GB 55009-2021《燃气工程项目规范》(含条文说明),2022年1月1日起实施 2021-11-07
-
PPT导出高分辨率图片的四种方法 2022-09-22
-
2023年最新!国家电网27家省级电力公司负责人大盘点 2023-03-14
-
全国消防救援总队主官及简历(2023.2) 2023-02-10
-
盘点 l 中国石油大庆油田现任领导班子 2023-02-28
-
我们的前辈!历届全国工程勘察设计大师完整名单! 2022-11-18
-
关于某送变电公司“4·22”人身死亡事故的快报 2022-04-26
