5

我有一个二进制波段顺序(1 波段,BSQ 文件),它是一个无符号的 16 位(2 字节)整数。

目前我正在通过multibandread阅读整个(图像) :

img=multibandread('IMAGE.bsq',[400 400 1],'uint16',0,'bsq','n');

MATLAB 中的哪个进程允许我分别读取两个字节?即我想将文件读入 MATLAB 中的 2 个新数组,例如 byte1 (400x400x1) 和 byte2 (400x400x1)。

这可以通过fread实现吗?我在“精度”部分注意到可以跳过源值(例如'N*source=>output'),但我不确定确切的过程。

4

1 回答 1

4

一种方法是img用按位运算分割你的电流。LSB 图像将是:

img1 = bitand(img, 255);   %// 0x00FF

和 MSB 图像将是:

img2 = bitsra(img, 8);

不是强制性的,但也许您还想将这些转换为uint8s:

img1 = uint8(img1);
img2 = uint8(img2);
于 2013-01-17T16:37:46.797 回答