0

おはようございます、

衛星画像を 2 進数に変換する方法について質問があります。各バンドの形式は double 型 (長さ 655x639) の行列で、数値は 204080、200 などです。バイナリ形式に変換したい . たとえば、次のようになります。

20480 = 101000000000000 200 = 11001000

「dec2bin」コマンドを試してみましたが、長さが異なるマトリックス (418545x8 文字) が作成され、正しく機能しないと思います (同じサイズが必要です)。さらに、フォーマットを uint16 または uint8 などに変更しようとしました。どうすればいいですか?

ご挨拶、

4

1 に答える 1

1

質問があります。画像の各ピクセルの 2 進数をどのように表現しますか?
最初は、各ピクセルは単一の浮動小数点数、つまり 655*639*1 浮動小数点数で表されます。uint16orに変換しても、各ピクセルが単一の数値でuint8表されるという事実は変わりません。ただし、を使用 してバイナリ文字列に変換する場合、各ピクセルを複数(8 または 16) の 2 進数で表現したいとします。したがって、結果のサイズは 418,545 行 8 列になります (418,545 = 655 * 639 であることに注意してください)。 あなたができることは、3次元を使用してピクセルごとのバイナリベクトルを格納する結果です
dec2bin
reshape

sz = size(myDoubleIm);
binIm = dec2bin( uint16(myDoubleIm) ); % convert to 16 bit
binIm = reshape( binIm, sz(1), sz(2), [] ); % convert to 3D
于 2013-09-30T07:06:54.697 に答える