INFO
このブログは脇元寛之の個人プロジェクトAUTLA.comのブログです。AUTLA.com SIDE-A内のコンテンツとご理解ください。

AUTLA(あうとら)をはじめとする各種ソフトウェアの開発日誌と、このブログに使用しているブログエンジン(公開予定)についてのメモ、その他AUTLA.comからのお知らせなどを書く予定です。
NAVI
タグ
最近のコメント
<<一つ新しいエントリー | TOP | 一つ過去のエントリー>>
dcrawのコンパイル

dcrawを使ってみる


dcrawはバイナリ(exeなど)やフロントエンド込み(UFRaw)などで配布されていますが、それらは常に最新版とは限りません。というか一年前だったりするので最新製品には対応していません。やはりdcraw.cが更新されたら(もしくはdcraw.cの更新より早く)すぐに使えるようにしたいということで、dcrawをコンパイルしてみました。

ビルド環境の構築(Windows)


おそらくLinuxでは簡単だと思われるので、Windowsでのビルド環境のメモ。

  • MinGW+MSYSをインストール。
  • LCMSのソースをダウンロードし、MSYSでコンパイル。./configure --prefix=mingw & make & make install
  • MinGWのincludeディレクトリにlcms.hがあること確認。

dcrawのコンパイル


  • コマンドプロンプト(MSYSじゃない!)で gcc -DWIN32 -DDJGPP -o dcraw -O4 dcraw.c -lm -llcms -lws2_32
これだけ。本当はこれを自アプリに埋め込みたいんですが、それは後回しにして、とりあえずコマンドで呼び出す仕様にしてみました。

で、やってみた。




現状では、「開く」ダイアログでPEFファイルを選んで、それを画面上に等倍表示するだけのアプリです。一応内容が表示されてますね。前回のエントリーで書いたTODOの2番までいった感じです。

ただ、3番に行く前に、大きな問題が…。

課題


これ、表示するまでに10秒近くかかるんです。dcrawの処理そのものが遅いのか、別プロセスのdcraw.exeに渡してるので単純にオーバーヘッドがかかっているのか。dcrawがテンポラリファイルを作った後さらに目的地までコピーしているような気がするので、それをやめさせてこちらからテンポラリファイルを直読みしに行くようにすればちょっとは早いかもしれません。そもそも一旦ファイル化するのはあまりメリットはないのでメモリ上でやるのがベスト。それにはdcrawをライブラリ化しなければなりません。とにかくdcraw.cをもっと読んでみることにします。

それから、現像後のデータはdcrawからは48Bitで出してるんですが、表示時には24Bitで表示しています。パソコンの色自体が24Bitなのでそれはそれで良いんですが、この時にどう間引くべきなのか。現状ではQtのaddPixmapで24Bit化しているつもりなんですが、もしかするとOpenCVのcvLoadImageの時点ですでに24Bit化されちゃってる恐れもあって、この辺はまだ調べる必要があります。いずれにしても現状では暗く表示されてしまって問題なので、描画のロジックは見直す必要があります。
0コメント
| 1  |
お名前:
コメント:
上の画像に書かれている5文字を入力してください:
削除用パスワード: