[英]how to convert an arrary of 16-bit unsigned intergers into ascii string in matlab
[英]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.