% 基于m-PCNN的医学图像融合 MATLAB源程序
function y=PCNN(A, B)
IMA = A;
IMB = B;
[ROW,COL]=size(IMA);
[ROW1,COL1]=size(IMB);
if(ROW~=ROW1|COL~=COL1)
error('input images should be the same size!');
end
%%%% SET THE mPCNN PARAMEERS [7 IN TOTAL]
%%%% W=M; BETA1=BETA2; DELTA; ALPHAT; VT;
BETA=0.5; %%% note BETA1=BETA2; SO WE USE BETA FOR CONVENIENCE
M=[0.707,1,0.707;1,0,1;0.707,1,0.707];
DELTA=1;
ALPHAT=0.012;
VT=4000; %%% MAKE SURE WHETHER THIS IS RIGHT.
%%%%%
IMAWT=conv2(IMA,M,'same'); %%% 卷积后保持源图像大小;
IMBWT=conv2(IMB,M,'same');
SUMPIXEL=ROW*COL; %%% PIXELS NUMBER OF FUSED IMAGE
JUDFIR=zeros(ROW,COL); %%% JUDFIR IS USED TO JUDGE WHETHER THE NEURON(I,J) IS FIRED
%%%JUDFIR用于判断神经元(i,j)是否激发。每个神经元在所有的迭代中只激发一次。
THR=500*ones(ROW,COL); %%% 不知此阈值是否合适
U=zeros(ROW,COL);
%%% ITERATION
ITETIME=10; %%% SET ITERATION TIME
for(itime=1:10)
for(i=1:ROW)
for(j=1:COL)
if(JUDFIR(i,j)~=1) %%% THE NEURON SHOULD NOT BE FIRED YET.
%%% 对单点进行迭代计算
HA=IMAWT(i,j)+IMA(i,j);
HB=IMBWT(i,j)+IMB(i,j);
U(i,j)=(1+BETA*HA)*(1+BETA*HB)+DELTA;
%%%判断是否激发
if (U(i,j)>THR(i,j)) %% 满足条件则激发
JUDFIR(i,j)=1;
else %% 不激发,对阈值进行衰减
THR(i,j)=THR(i,j)*exp(-ALPHAT);
end
end %%% end of JUDFIR
end %%% end j
end %%% end i
if(sum(sum(JUDFIR))==SUMPIXEL)
fprintf(1,'fused successfully');
break
end
end %%% end itime
U=U/max(max(U))*255;
y =U;
end %%% end of function
PCNN.rar_NSCT和pcnn_nsct_pcnn_pcnn nsct_图像融合代码
版权申诉
103 浏览量
2022-09-22
14:33:21
上传
评论
收藏 1KB RAR 举报
钱亚锋
- 粉丝: 86
- 资源: 1万+
最新资源
- 筷手引流工具.apk
- 论文(最终)_20240430235101.pdf
- 基于python编写的Keras深度学习框架开发,利用卷积神经网络CNN,快速识别图片并进行分类
- 最全空间计量实证方法(空间杜宾模型和检验以及结果解释文档).txt
- 5uonly.apk
- 蓝桥杯Python组的历年真题
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 前端开发技术实验报告:内含4四实验&实验报告
- Highlight Plus v20.0.1
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
评论0