Mam binarny zespół sekwencyjny (1-pasmowy, plik BSQ), który jest liczbą całkowitą niepodpisaną 16-bitową (2-bajtową).MATLAB: Odczytanie obu bajtów niepodpisanego 16-bitowego pliku binarnego
Obecnie czytam całość (zdjęcie) przez multibandread:
img=multibandread('IMAGE.bsq',[400 400 1],'uint16',0,'bsq','n');
Jaki proces w MATLAB pozwoli mi czytać oba bajty indywidualnie? tj. chciałbym przeczytać plik na 2 nowe tablice w MATLAB, np. bajt1 (400x400x1) i bajt2 (400x400x1).
Czy można to osiągnąć przez fread? Zauważam, że w sekcji "precyzja" można pominąć wartości źródłowe (np. 'N*source=>output'
), ale nie jestem pewien dokładnego procesu.
Czy próbowałeś podać 'uint8'' zamiast' uint16'', uzyskując wynik, a następnie dzieląc go na dwa obrazy? Lub może podzielić bieżący wynik na dwa obrazy za pomocą operacji bitowych? –
Potrzebuję wyodrębnić oba bajty z tablicy 'uint16' - czy odczytanie tego jako' uint8' osiągnęłoby to? (Bardziej interesują mnie dane zawarte w drugim bajcie). – MBL