*.bmp序列保存为*.raw文件[matlb实现]

72 篇文章 6 订阅

1.利用matlab将断层切片图像序列保存为Raw文件

%save *.bmps to *.raw
clear all;
rawName='Contours';
dirName='Contours';
files=dir(dirName);
N = length(files);   %文件夹中 图片的张数 '.' + '..' + 真实张数
width=0; height=0; 
for i=1:1:N
    fileName=files(i).name;
    if ( strfind(fileName,'.bmp') )  % .dcm
        bmpFile = imread(['Contours\' fileName]);  % 文件目录
        [width,height] = size(bmpFile);
        break;
    end
end

pageSize=0;
for i=1:1:N
    fileName = files(i).name;
    if ( strfind(fileName,'.bmp') )
        pageSize = pageSize + 1;
    end
end

depth = pageSize;
rawFile = int16(ones(width,height,depth));
page=1;
for i=1:1:N
    fileName = files(i).name;
    if ( strfind(fileName,'.bmp') )
        rawFile(:,:,page)=imread(['Contours\' num2str(i-1) '.bmp']);
        page = page + 1;
    end
end

fid=fopen([rawName,'.raw'],'w');
fwrite(fid,rawFile,'uint16');
fclose(fid);
注意事项:
1.对于*.bmp/*.png/*.tiff/*.jpg使用imread()函数即可,对于DICOM文件应该使用dicomread()函数。
2.读取文件路径要完整,可以使用[]符号。
3.一些函数:
  • dir(name) 该函数可以用来得到name文件夹下的文件信息,返回一个struct数组
  • exist(filename,’file’) 该函数可以用来检索文件是否存在,使用时可以查看帮助来确定返回值的意义
  • strfind(fileName,’.dcm’) 该函数用来在某字符串中寻找子串

2.读取*.raw文件,并测试数据是否正确

clc;clear;
fid=fopen('Contours.raw', 'r');
img=fread(fid,'uint16');
fclose(fid);
for i =1:256
    for j = 1:256
        data(i,j) = img((i-1)*256+j);
    end
end
显示一张图像:

                                                                             
  • 2
    点赞
  • 1
    评论
  • 7
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 代码科技 设计师:Amelia_0503 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值