关于显示.mnc格式的文件与.rawb格式的文件的问题
关于显示.mnc格式的文件与.rawb格式的文件的问题
天蚕宝衣 发表于3个月前
关于显示.mnc格式的文件与.rawb格式的文件的问题
  • 发表于 3个月前
  • 阅读 54
  • 收藏 0
  • 点赞 0
  • 评论 0

华为云·免费上云实践>>>   

前几天在网站http://brainweb.bic.mni.mcgill.ca/cgi/bw/submit_request填写仿真数据后,网站生成了纯二进制数据的文件提供下载,文件格式是.mnc和.rawb,一开始下载.mnc格式的文件,但研究多个文章后仍然打不开。最后下载了.rawb格式的文件,用matlab打开。

rawb的全称是raw byte (unsigned),介绍如下:

One (unsigned) byte is used for each voxel, and the data is scaled such that it will use the entire 0...255 range of values. Exception: the "crisp" anatomical models are not scaled -- their byte values will be in the range 0...10.

填写的仿真数据如下图所示:

提交的数据如下图所示:

用matlab读取.rawb文件的代码如下所示:

调用的readrawb.m函数:

function g = readrawb(filename, num)
    fid = fopen(filename);
    % 连续读取181*217*181个数据,这时候temp是一个长度为181*217*181的向量。
    % 先将rawb中的所有数据传递给temp数组,然后将tempreshape成图片集。
    temp = fread(fid, 181 * 217 * 181);
    % 所以把它变成了一个181*217行,181列的数组,按照它的代码,这就是181张图片的数据,每一列对应一张图。
    % 生成图片集数组。图片集images数组中每一列表示一张图片。
    images = reshape(temp, 181 * 217, 181);   
    % 读取数组中的第num行,得到数组再reshape成图片原来的行数和列数:181*217。
    image = images(:, num);
    image = reshape(image, 181, 217);
    g = image;
    fclose(fid);
end

方法一

写主函数,通过主函数调用。

主函数main.m:

% 函数readrawb(filename, num)中的第一个参数filename是欲读取的rawb文件的文件名,第二个参数num就是第多少张。
read = readrawb('brainweb.rawb', 33);  
read = imrotate(read, 270);                     % 旋转270°                       
imshow(uint8(read));

生成的图像如图所示: 

方法二

不写主函数,在readraw.m文件下的命令行窗口直接输入命令。

如下图所示:

生成的图像如图所示: 

共有 人打赏支持
粉丝 16
博文 221
码字总数 142485
×
天蚕宝衣
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: