我有一个没有头文件的放射线照片.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)
然而,生成的图像不正确。有什么我做错了吗?有人可以建议任何不同的方法来读取此图像文件?
答案 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);