5

Hamamatsu NanoZoomer スライド スキャナで生成されたファイルから画像コンテンツを抽出しようとしています。NDPI ファイルは、変更された TIFF 構造を使用し、画像コンテンツを JPEG 形式の 1 つの大きなチャンクに格納します。StripOffsets と StripByteCounts を使用して、JPEG ファイルと思われるデータを抽出できました。

データ ストリームには、スキャン マーカーの開始である FFD8 やスキャン マーカーの終了である FFD9 など、JPEG ファイルの正しい署名がすべて含まれています。これが 65500*65500 ピクセルより小さい画像の場合、データ ストリームを jpeg ファイルに保存すれば、問題なくファイルを開くことができます。

JFIF ヘッダーでは、FFC0 マーカーの後の 3 番目と 4 番目のバイトは画像の高さを表します。その後の 2 バイトは画像の幅を表します。ただし、65500*65500 ピクセル (実際には 122880*78848 ピクセル) より大きいイメージの場合、イメージの高さとイメージの幅を表すと思われるこれらの 4 バイトはすべてゼロです。これに続いて、 255、220、255、220に変更しました (255 ~ 263 行目)。Windows で jpeg 情報を右クリックして詳細を選択すると、実際のピクセル解像度を表していないにもかかわらず、Windows フォト ビューアーが解像度を 65500*65500 として読み取ることがわかりました。問題は、画像を開こうとしたときに、明らかに間違った方法でデコードされていることです。

だから私の質問は次のとおりです。どうすればそのような jpeg ファイルを正しく開くことができますか? または、そのような画像コンテンツ全体をメモリに正しくデコードするにはどうすればよいでしょうか?

現在、MATLAB を使用してファイル構造を理解しようとしています。最終的には、Python + OpenCV (または必要に応じて Python + Cython + libjpeg-turbo を使用) を使用して、イメージ全体をメモリに読み込みます。

4

2 に答える 2

0

これ以上の手がかりがなければ、いくつかの発言だけ:

  • 65500x65500 = 3GiO/チャネル (動作中)
  • 122880*78848 = 9GiO/チャネル (目標)

これらはすでに大量の連続したメモリです。特に Windows では、この種のアプリケーションにはいくつかの制限があります (詳細については、これを参照してください) 。

まず、この画像を開こうとしているコンピュータまたはソフトウェアの詳細を教えてください。(RAM の量、スワップ、ユーザー空間に割り当てられた最大メモリなど)

完全にランダムな推測ですが、 ImageJ で試しましたか?

見たい領域をオンザフライで開くことは可能でしょうか (全体像を見たいかどうかはわかりません) ?

マルチスケール画像表現を使用しないのはなぜですか?

編集:ファイル形式を IN2P3 によって TIFF に変換するためのツールがあることを確認しました。また、本当にそこに JPEG が隠されているのか、それとも TIFF が隠されているのか疑問に思うこともあります。

于 2016-07-06T08:20:10.353 に答える