24小时热门版块排行榜    

查看: 439  |  回复: 2

yyhmbb

银虫 (初入文坛)

[求助] matlab程序求助 已有1人参与

本人现有一组ct扫描图片,想把它变成三维数值图,区分里面的不同物质。急求。
回复此楼

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : ct图片.rar
  • 2015-07-01 10:11:16, 8.07 M

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xmxangel

新虫 (初入文坛)

【答案】应助回帖

你这个问题解决了没有。我知道有些方法可以帮到你,首先我推荐你使用专业软件来处理这些数据,比如Avizo和mimics。另外,如果非得用matlab处理,我看了下是tif文件(不是dicom的),可以参照下面这个帖子。http://au.mathworks.com/help/images/examples/exploring-slices-from-a-3-dimensional-mri-data-set.html
另外,找了个mri的代码,你自己研究下吧
%% mriplot.m
%  Click on any the three MRI images and press "ENTER" to change slices at new [x,y,z] positions.
%  Press "ESC" and press "ENTER" to exit.
%  by Binlin Wu -- CCNY
%  bwu@sci.ccny.cuny.edu
%  09/14/2010

load mri.mat;
D1=double(squeeze(D));
DIM = size(D1);
[X,Y,Z]=meshgrid(1:DIM(2),1:DIM(1),1:DIM(3));
h1=subplot(2,2,1);imagesc(D1(:,:,round(DIM(3)/2)),[min(D1(:)) max(D1(:))]);colormap(gray);title('axial');colorbar;
xlabel('x');ylabel('y')
h2=subplot(2,2,2);imagesc(squeeze(D1(:,round(DIM(2)/2),:)),[min(D(:)) max(D(:))]);colormap(gray);title('sagittal');colorbar;
xlabel('z');ylabel('y')
h3=subplot(2,2,3);imagesc(squeeze(D1(round(DIM(1)/2),:,:)),[min(D(:)) max(D(:))]);colormap(gray);title('coronal');colorbar;
xlabel('z');ylabel('x')
subplot(2,2,4);slice(X,Y,Z,D1,64,64,14);colormap(gray);shading flat;title('3D Slices')
xlabel('x');ylabel('y');zlabel('z');


x=round(DIM(2)/2);y=round(DIM(1)/2);z=round(DIM(3)/2);
button = 0;

while(1)

    try
        [A,B,button]=ginput
    catch
        return
    end
    if length(A)==0
        A=14;B=64;button=0;
    end

    A=A(end);
    B=B(end);
    button=button(end);

    A=ceil(A-0.5);
    B=ceil(B-0.5);

    if button==27
        break;
    end
    if gca==h1
        x=A;
        y=B;
        if x<=0 || x>DIM(2) || y<=0 || y>DIM(1)
            continue
        end
        axes(h2);imagesc(squeeze(D1(:,x,:)),[min(D(:)) max(D1(:))]);colormap(gray);title('sagittal');colorbar;
        xlabel('z');ylabel('y')
        axes(h3);imagesc(squeeze(D1(y,:,:)),[min(D(:)) max(D1(:))]);colormap(gray);title('coronal');colorbar;
        xlabel('z');ylabel('x')
        subplot(2,2,4);slice(X,Y,Z,D1,x,y,z);colormap(gray);shading flat;title('3D Slices')
        xlabel('x');ylabel('y');zlabel('z');
    elseif gca==h2
        z=A;
        y=B;
        if z<=0 || z>DIM(3) || y<=0 || y>DIM(1)
            continue
        end        
        axes(h1);imagesc(D1(:,:,z),[min(D1(:)) max(D1(:))]);colormap(gray);title('axial');colorbar;
        xlabel('x');ylabel('y')
        axes(h3);imagesc(squeeze(D1(y,:,:)),[min(D1(:)) max(D1(:))]);colormap(gray);title('coronal');colorbar;
        xlabel('z');ylabel('x')
        subplot(2,2,4);slice(X,Y,Z,D1,x,y,z);colormap(gray);shading flat;title('3D Slices')
        xlabel('x');ylabel('y');zlabel('z');        
    elseif gca==h3
        z=A;
        x=B;
        if x<=0 || x>DIM(2) || z<=0 || z>DIM(3)
            continue
        end        
        axes(h1);imagesc(D1(:,:,z),[min(D1(:)) max(D1(:))]);colormap(gray);title('axial');colorbar;
        xlabel('x');ylabel('y')
        axes(h2);imagesc(squeeze(D1(:,x,:)),[min(D1(:)) max(D1(:))]);colormap(gray);title('sagittal');colorbar;
        xlabel('z');ylabel('y')
        subplot(2,2,4);slice(X,Y,Z,D1,x,y,z);colormap(gray);shading flat;title('3D Slices')
        xlabel('x');ylabel('y');zlabel('z');        
    end
end
Nogainisslighttobother.
2楼2015-08-20 23:09:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

永久的萤火虫

金虫 (小有名气)

楼主,您好,看到您的这个帖子,我们两个的研究内容有相似之处,刚入门,学起来有点吃力,还望楼主能不吝赐教,相互学习。。谢谢。方便的还望您能加下我的QQ528880215.谢谢您
追求不同,所以要求不同
3楼2016-01-08 10:17:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 yyhmbb 的主题更新
信息提示
请填处理意见