【发布时间】:2013-01-01 06:17:18
【问题描述】:
我有一个二进制波段序列(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'),但我不确定确切的过程。
【问题讨论】:
-
您是否尝试指定
'uint8'而不是'uint16',获取结果然后将其分成两个图像?或者使用按位运算将您当前的结果分成两个图像? -
我需要从
uint16数组中提取两个字节——读取为uint8会实现这一点吗? (不过我对第二个字节中包含的数据更感兴趣)
标签: matlab integer byte binaryfiles