您的位置:首页 > 其它

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

2017-05-12 13:44 525 查看

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显示一张图像:

                                                                             
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: