Matlab_按顺序读取多个tif文件后转化为三维图像栈

3 篇文章 0 订阅

多个JPG文件或者tif文件都行

close all
clear
suffix='.tif';
imgFolder='D:\dateset\DIADEM\Olfactory Projection Fibers\Image Stacks\OP_9\';
SaveName=[imgFolder 'final.tif'];
if ~exist(imgFolder,'dir')
    error('image folder not exist')
end
fileNumber = dir(fullfile(imgFolder,['*' suffix]));

for i=1:size(fileNumber,1)
    curImgName=[ imgFolder num2str(i) suffix];
    img(:,:,i)=imread(curImgName);
end

for k = 1:size(img,3)

      imwrite(img(:,:,k),SaveName,'WriteMode','append','Compression','none');
end
disp('save over')

版本2,在这个版本里面还加入了翻转,因为matlab读取之后写入会遇到y轴翻转的问题。

clc
clear
num=1;
folder='D:\dataset\op\Image Stacks\OP_10\';
outerName='op.tif';

%read
while 1
    if num<10
        img_name=[folder '0' num2str(num) '.tif'];
    else
        img_name=[folder num2str(num) '.tif'];
    end
%     img_name=[folder num2str(num) '.tif'];
    if exist(img_name,'file')
%         disp([' exist ,and read' img_name])
        img(:,:,num)=imread(img_name);
    else
%         disp([img_name '  not exist'])
        break;
    end
    num=num+1;
end
if num==1
    error('num==1')
end

save_file_name=[folder outerName];
if exist(save_file_name,'file')
    delete(save_file_name)
end
for i=1:size(img,3)
    J=uint8(img(:,:,i));           %%一层一层写出图像
%     J1=zeros(size(J));
    for j=1:size(J,1)
        J1(j,:)=J(size(J,1)-j+1,:);
    end
    imwrite(J1,save_file_name,'WriteMode','Append');
end
disp([ folder  'over'])
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值