在matlab中读取没有标题的img医学图像

时间:2014-04-17 18:54:03

标签: matlab endianness medical

我有一个没有头文件的放射线照片.img文件。但是,已发布该文件的研究人员已经提供了相关信息

High resolution (2048 x 2048 matrix size, 0.175mm pixel size)
Wide density range (12bit, 4096 gray scale)
Universal image format (no header, big-endian raw data)

使用这些信息,我在Matlab中尝试使用fread命令将图像读入Matlab。

fid = fopen('image.img','r','B');
oneSlice = fread(fid, [2048 2048], '*uint8','B');
imshow(oneSlice)

然而,生成的图像不正确。有什么我做错了吗?有人可以建议任何不同的方法来读取此图像文件?

2 个答案:

答案 0 :(得分:2)

JSRT数据库(www.jsrt.or.jp/jsrt-db/eng.php)的肺部X射线具有该格式。我用它们测试了这个代码并且它可以工作:

fid = fopen('image.img','r','b');
oneSlice = fread(fid, [2048 2048], '*uint16','b');
img = mat2gray(oneSlice, [0,4096]);
fclose(fid);

答案 1 :(得分:0)

%%% Read image
    fid = fopen('image.img','r','b');
    oneSlice = fread(fid, [2048 2048], '*uint16','b');
    img = mat2gray(oneSlice, [0,4096]);
    fclose(fid);

%%%rotate image

    imgR = imrotate(img,270);

%%%horizontal flip image

    imgRF = flipdim(TestImgR ,2);