MBL*_*MBL 5 matlab byte integer binaryfiles
我有一个二进制Band Sequential(1波段,BSQ文件),它是一个无符号的16位(2字节)整数.
目前我通过multibandread读取整个(图像):
img=multibandread('IMAGE.bsq',[400 400 1],'uint16',0,'bsq','n');
Run Code Online (Sandbox Code Playgroud)
MATLAB中的哪个过程允许我单独读取两个字节?即我想在MATLAB中将文件读入2个新数组,例如byte1(400x400x1)和byte2(400x400x1).
这可以通过fread来实现吗?我注意到在'precision'部分中可以跳过源值(例如'N*source=>output'),但我不确定确切的过程.
img一种方法是通过按位运算分割电流。LSB 图像将是:
img1 = bitand(img, 255); %// 0x00FF
Run Code Online (Sandbox Code Playgroud)
MSB 图像将是:
img2 = bitsra(img, 8);
Run Code Online (Sandbox Code Playgroud)
不是强制性的,但也许您还想将它们转换为uint8s:
img1 = uint8(img1);
img2 = uint8(img2);
Run Code Online (Sandbox Code Playgroud)