matlab 读取多个dicom,matlab怎样读入多张不连续的dicom图片?

clear all

clc

close all

%先读入图片。

%个事你可以改的。

di = dir('*.bmp');

I={};

n=length(di);

for k= 1:n

I{k} = imread(di(k).name);

end

%提取图片矩阵的最后一列保存到a、第一列保存到b。

a={};

b={};

for j=1:n

a{j}=I{j}(:,end);

b{j}=I{j}(:,1);

end

%判断第一列和最后一列的对应的黑点概率来做拼接。

g=0.0;

gl=[];

q=[];

p=[];

for m=1:n

S=I{m};

for i=1:n

ai=find(a{m}==0);

bi=find(b{i}==0);

c=intersect(ai,bi);

g=length(c)/max([length(ai) length(bi)]);

gl=[gl g];

if g>0.4396

q=[q m];

p=[p i];

S=[S I{i}];

end

end

end

%拼接和复原图片。

SS=[];

[c, ia, ib] = setxor(q,p);

SS=I{q(ia)};

k=length(q);

SS=[SS I{p(ia)}];

sq=[q(ia) p(ia)];

for i=1:k

while p(ia)~=q(i)

[t,h]=find(q==p(ia));

SS=[SS I{p(h)}];

sq=[sq p(h)];

ia=h;

end

end

AA=im2double(SS);

% AA=im2uint8(SS);

F=-1*AA+1;

AA=(premnmx(AA)+1)/2;

% imshow(F)

% figure

% % im2bw(F,0.5);

f=(premnmx(F)+1)/2;

figure;imtool(imadjust(f,[],[],1));

[J,T]=histeq(AA);%

% figure,imshow(J)

disp('图片的排列顺序')

% cell2mat(a)%吧cell转换成double型

disp(sq-1)

警告: PREMNMX is an obsolete function.

Use MAPMINMAX instead, type HELP PREMNMX for bug warning.

警告: Some maximums and minimums are equal. Those inputs won't

be transformed.

警告: PREMNMX is an obsolete function.

Use MAPMINMAX instead, type HELP PREMNMX for bug warning.

警告: Some maximums and minimums are equal. Those inputs won't

be transformed.

图片的排列顺序

Columns 1 through 13

8    14    12    15     3    10     2    16     1     4     5     9    13

Columns 14 through 19

18    11     7    17     0     6

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值