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

来源:互联网 发布:网络文儿的个人资料 编辑:程序博客网 时间:2024/06/05 08:54

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

%save *.bmps to *.rawclear 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;    endendpageSize=0;for i=1:1:N    fileName = files(i).name;    if ( strfind(fileName,'.bmp') )        pageSize = pageSize + 1;    endenddepth = 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;    endendfid=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);    endend
显示一张图像:

                                                                             
1 0
原创粉丝点击