簡體   English   中英

MATLAB:讀取無符號16位二進制文​​件的兩個字節

[英]MATLAB: Reading both Bytes of a Unsigned 16-bit binary file

我有一個二進制Band Sequential(1波段,BSQ文件),它是一個無符號的16位(2字節)整數。

目前我通過multibandread讀取整個(圖像):

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

MATLAB中的哪個過程允許我單獨讀取兩個字節? 即我想在MATLAB中將文件讀入2個新數組,例如byte1(400x400x1)和byte2(400x400x1)。

這可以通過fread來實現嗎? 我注意到在'precision'部分中可以跳過源值(例如'N*source=>output' ),但我不確定確切的過程。

一種方法是使用按位運算拆分當前的img LSB圖像將是:

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

和MSB圖像將是:

img2 = bitsra(img, 8);

不是強制性的,但也許你也想將它們轉換成uint8

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM