gpt4 book ai didi

MATLAB:读取无符号 16 位二进制文​​件的两个字节

转载 作者:太空宇宙 更新时间:2023-11-03 19:44:57 25 4
gpt4 key购买 nike

我有一个二进制 Band Sequential(1-band,BSQ 文件),它是一个无符号的 16 位(2 字节)整数。

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

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

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

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

最佳答案

一种方法是使用按位运算拆分当前的 img。 LSB 图像将是:

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

MSB 图像将是:

img2 = bitsra(img, 8);

不是强制性的,但也许您还想将它们转换为 uint8:

img1 = uint8(img1);
img2 = uint8(img2);

关于MATLAB:读取无符号 16 位二进制文​​件的两个字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14383653/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com