您现在的位置:首页 >> 图像处理 >> 内容

m基于小波变换的PET图像重建matlab仿真

时间:2023/2/26 22:31:55 点击:

  核心提示:09_023_m,包括程序操作录像+说明文档+参考文献...

1.完整项目描述和程序获取

>面包多安全交易平台:https://mbd.pub/o/bread/ZJWalZ1v

>如果链接失效,可以直接打开本站店铺搜索相关店铺:

点击店铺

>如果链接失效,程序调试报错或者项目合作可以加微信或者QQ联系。

2.部分仿真图预览



3.算法概述

       PET测量数据(光子计数值)与生理模型紧密相关。然而,通常的重建方法多采用无生理意义的统计特性约束,从而忽略了反映生理特性的生理模型约束。本项目针对PET图像重建问题,提出利用H无穷粒子滤波混合算法融入数据统计特性模型、生理模型双重约束,并结合GPU完成重建过程的加速的方法。具体实现过程中以先验的共性生理特性作为约束,利用H无穷的鲁棒性处理不确定性,给出放射性药物浓度的粗估计,然后利用粒子滤波可以融合任何统计特性的能力,细调节估计值。以上迭代循环进行,最后给出放射性浓度分布与方差特性。由于采用了GPU加速策略,重建时间将显著缩短。该方法的实现将为PET图像重建提供新的技术手段。

4.部分源码

...........................................................

%读取PET图像

I    = imread('shepp-logan.jpg');            

N    = 1;%分解级数

NUM  = 90;%迭代次数

if isrgb(I) == 1

   im = mat2gray(rgb2gray(I));

else

   im = mat2gray(I);

end

im2   = im;

[r,c] = size(im2);

figure;

subplot(131);

imshow(im,[]);

title('原始的图像');    

%得到行值与列值

[rows,cols]=size(im);                                                

for i=1:N      

    %先对行进行一维快速分解

    for j=1:cols/2^(i-1)             

        im(j,1:cols/2^(i-1)) = func_fast_wavelet_trans(im(j,1:cols/2^(i-1)),1);       

    end

    %对列进行一维快速分解

    for j=1:rows/2^(i-1)                                           

        im(1:rows/2^(i-1),j) = func_fast_wavelet_trans(im(1:rows/2^(i-1),j)',1);      

    end

end

%赋值给输出变量                                                          

im(abs(im)<0.1)=0;

subplot(132);

imshow(im)                                                      

title('变换之后的图像')

wl     = im;

im_tmp = im;

%计算概率矩阵A

%计算概率矩阵A

%计算概率矩阵A

for jj = 1:NUM

    im = im_tmp;

    jj

    % 进行重建

    % 进行重建

    for i=N:-1:1                                                         

       for j=rows/2^(i-1):-1:1                                   

            im(1:rows/2^(i-1),j) = func_image_recon(im(1:rows/2^(i-1),j)',1,jj,im2(1:rows/2^(i-1),j)',wl(1:rows/2^(i-1),j)');      

        end

       for j=cols/2^(i-1):-1:1                                        

            im(j,1:cols/2^(i-1)) = func_image_recon(im(j,1:cols/2^(i-1)),1,jj,im2(1:rows/2^(i-1),j)',wl(1:rows/2^(i-1),j)');       

        end

    end

 

    subplot(133);

    imshow(im)                                                      

    title('重建图像')

    f0 = round(255*im);

    f1 = round(255*im2);

    errors(jj) = abs(sum(sum(f1 - f0)))/(8*256*256);

    clear im        

end

figure;

plot(1:NUM,errors,'b-*');

title('误差曲线');

xlabel('迭代次数');

ylabel('误差曲线');

09_023_m                                                                                                                                                                                                                                                                                                                                                                                  

作者:我爱C编程 来源:我爱C编程
本站最新成功开发工程项目案例
相关评论
发表我的评论
  • 大名:
  • 内容:
本类固顶
  • 没有
  • FPGA/MATLAB商业/科研类项目合作(www.store718.com) © 2025 版权所有 All Rights Reserved.
  • Email:1480526168@qq.com 站长QQ: 1480526168