6

ここで提供されている画像に対してテストしたい Java で画像分類子を作成しました: http://yann.lecun.com/exdb/mnist/

残念ながら、train-images-idx3-ubyte.gz または他の 3 つのファイルのいずれかをダウンロードすると、それらのファイル タイプはすべて .idx1-ubyte になります。

最初の質問: .idx1-ubyte をビットマップ (.bmp) ファイルにする方法を誰か教えてもらえないだろうか?

2 番目の質問: または、これらのファイルを一般的に読み取るにはどうすればよいですか?

IDX ファイル形式に関する情報: IDX ファイル形式は、さまざまな数値型のベクトルおよび多次元行列用の単純な形式です。基本的な形式は次のとおりです。

magic number 
size in dimension 0 
size in dimension 1 
size in dimension 2 
..... 
size in dimension N 
data

マジック ナンバーは整数 (MSB ファースト) です。最初の 2 バイトは常に 0 です。

3 番目のバイトは、データのタイプをコード化します。

0x08: unsigned byte 
0x09: signed byte 
0x0B: short (2 bytes) 
0x0C: int (4 bytes) 
0x0D: float (4 bytes) 
0x0E: double (8 bytes)

4 番目のバイトは、ベクトル/行列の次元数をコードします: ベクトルの場合は 1、行列の場合は 2....

各次元のサイズは 4 バイトの整数です (Intel 以外のほとんどのプロセッサと同様に、MSB ファースト、ハイエンド エンディアン)。

データは C 配列のように格納されます。つまり、最後の次元のインデックスが最も速く変化します。

4

3 に答える 3

0

URL には、デコードする必要がある形式が記述されており、それが非標準であることが言及されているため、明らかな Google 検索では使用コードは表示されません。ただし、ヘッダーの後に 0 ~ 255 のグレー スケール値の 28x28 ピクセル マトリックスが続くという非常に単純なものです。

データを読み取ったら (エンディアンに注意してください)、BMP ファイルの作成は簡単です。

次の記事をお勧めします。

Javaでピクセルバイト配列からbmp画像を作成する方法

彼らの質問は色に関するものですが、彼らのコードはすでにグレースケールで機能しており、とにかくそれが必要です。そのスニペットから何かを得ることができるはずです。

于 2013-06-24T16:17:27.337 に答える