• ベストアンサー

バイナリーファイルの変換

CCDカメラで取り込んだ画像ファイルがどうやらバイナリーで出力されているようなのです。(拡張子は.dat)テキストで読めるようにしたいのですが、どのように処理すればよいのでしょうか?Cプログラムは多少組めます。参考図書などあるようでしたらご教示いただけたら幸いです。よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • K-1
  • ベストアンサー率21% (832/3844)
回答No.3

どういう意味でのテキストにしたいのでしょうか? 単にバイナリコードの16進ダンプとかでいいのですか? while(ファイルの最後まで)  1バイト読み込み  printf("%02x ", 読んだ1バイト); wend で、16進ダンプが取り出せます。 本や雑誌など文字を写した画像から、文字をテキストで取り出したい? OCRというソフトを使用します。 画像解析などの知識が必要なので初心者には自作は無理でしょうから市販のソフトを利用した方がいいです。

infinity40-100
質問者

お礼

お返事が大変遅れてしまい、申し訳ありませんでした。 バイナリーファイルについて自分がよくわかっていないことがわかりました。ただK-1さんが指摘されている”16進ダンプ”というような状況かと思われます。 まずは使用している装置の会社に問い合わせてみます。ありがとうございました。

その他の回答 (2)

  • Pesuko
  • ベストアンサー率30% (2017/6702)
回答No.2

質問の意図として、CCDで読み取った画像ファイルの中身のバイナリーをテキスト形式に変換し 1画素単位の階調値を知りたいということでいいですか? まずバイナリーになってる以上そのフォーマットが解らないと手も足も出ません。 またカラー階調が16bitなのか24bitなのか。 たとえば1画素256階調でR=126 G=102 B=98 だったとき、そのままベタにバイナリーに置き換えてあるのか等 出力される**.datを生成してるソフトの仕様書には書いてあるでしょう。 製造してるメーカーがファイルフォーマット公開してくれれば前に進みますが、非公開の場合解析作業になりますから 膨大な時間と労力が必要です。 たとえば単純にRGBをベタにバイナリーにしていれば、各RGBのデーター長は固定長のはずですから8bit単位に切り出せば 解るでしょ。

infinity40-100
質問者

お礼

お返事が大変遅れてしまい、申し訳ありませんでした。 どうやら製造しているメーカーに聞くしかないようです。それがわかっただけでも答えていただいた甲斐がありました。ありがとうございました。

  • edomin
  • ベストアンサー率32% (327/1003)
回答No.1

画像ファイルからテキストを取り出すには「OCRソフト」を使用します。 個人で一から作るのはまず無理でしょう。