digital photo lab



RAW縮小現像ツール

下記RAWデータの縮小現像を自動化するツールを作成しました。ベイヤーパターンを自由に指定でき、RAW画像を読み込んで16bitのpngファイルを出力します。

Windows Linux_x86_64

RAWデータのシンプルな縮小現像

ベイヤー配列のセンサーは、RGBのそれぞれの光を感じるセンサーが平面上に並べられて構成されています。4画素で1つの色を表現しているので、ここではシンプルに4画素を1ピクセルにして現像する方法を紹介します。

  1. まず平面のデータをそのまま出力します。出力されるデータはグレースケールです。 なぜカラー画像なのに出力されるのがグレースケールなのかというと、RGBのそれぞれのセンサー配置が決まっており、後で同じ箇所に色フィルターを当てることにより色を再現できるからです。 この時、16ビットフォーマットで出力するように注意して下さい。 デジタルカメラは多くの場合12bit〜14bitの画像を取得しますが、PCで一般的に使用される8bitフォーマットで出力するとほとんどの色情報が失われてしまいます。 RAW画像をダイレクトに出力出来るツールは限られています。 現在ではdcrawを使用する事が最も簡単かと思われます。 dcrawで16bitグレースケール画像として現像するには以下のコマンドを使用します。

    「dcraw -D -4 XXX.raw」(XXX.rawは対象のraw画像)

  2. pgmというビットマップで出力されるので、画像編集ツールで扱える形式に変換します。windowsの場合は手順1でdcrawのオプションを利用して16bitのTIFFに出力してもいいかもしれません。 ここではnetpbmを利用して16bitのPNGに変換します。

    「pnmtopng -paeth XXX.pgm > XXX.png」

  3. 変換後の画像を画像編集ツールで開きます。16bitフォーマットを扱える画像編集ツールーーここではGIMP2.9以降のバージョンーーを使用します。
    階調が偏り暗くなっている画像
    開いた画像はほとんど真っ暗です。なぜかというと、12bit〜14bitの階調幅の情報が、 変換時に、より諧調幅の広い16bitフォーマットの暗い方に偏って出力されているからです。 色調補正は後で行うのでここでは暗いままにしておきます。 この状態の画像を明度、コントラストを上げて拡大すると下のようになっています。
    区切られた4つの四角。RGBそれぞれに対応する灰色となっている
  4. RGB各色の割り当てを行うため、撮影したカメラのセンサーの配列と同じ色の配列の画像(フィルタ)を用意します。 このデータを使用してください。画像の上か下のレイヤーにフィルタを配置します。 下はこの状態で明度、コントラストを調整した状態の画像です。
  5. 画像の上にフィルタをおいた場合は、フィルタのレイヤーモードを「色」に、画像の下においた場合は画像のレイヤーモードを「明度」にして画像を統合します。
  6. 画像の統合が終わると、色付きの状態となり、RGBの各カラーのみの画素が並んだオートクロームのような状態の画像となっています。右上が灰色なのは、Gが多いと緑に偏るので無色にしているためです。 色を適用した状態の画像の一部。それぞれのピクセルに色がついている
    ここで4つのピクセルの平均を取り1つのピクセルを作ります。この機能は「ピクセルぼかし」に相当します。GIMP2.9では「Pixelize」です。縦2,横2にして「Pixelize」を行います
  7. 50%のサイズに画像を縮小します。縮小時は「補完方法」を「補完しない」にします。無補完が無ければ「ニアレストネイバー法」を選んでください。これで4画素1pxの状態になりました。
  8. 4画素を1pxに合成した状態
  9. ここで一旦16bit画像として保存し、再度開きます。
  10. 色調補正します。トーンカーブを立ち上げると暗くても色が存在していたことが分かります。暗室でカラーネガをプリントする時の気持ちでじっくり補正していきます。 web等に載せるための最終出力の際は8bit画像に変換して出力します。16bit対応出力機器があれば、そのまま出力することも出来ます。 4画素を1pxに合成した状態

セブンイレブンのマルチコピー機による写真集の製作

なかなか上手く行かなかったので書いておきます。

  1. 必ず縦置き(縦長)の画像を用意します。出力するプリントのサイズがA3ならば3507x4960 A4ならば2480x3507にすると、300dpiで出力出来ます。サイズが合わなければ余白を作ったり拡大/縮小して調整します。画像ファイルの名前には、ページ順に001,002のように連番を付けておき、同じフォルダにまとめて置きます。セブンイレブンのマルチコピー機は最大50ページまでしか読み込まないので、ページ数をそれ以下にします。
  2. ImageMagick等でpdfにします。ImageMagickでA3、photo001.pngからphotoxxx.pngという名前のファイルをpdfにする場合、" convert photo*.png -page A3 out.pdf"、というコマンドになります。300dpiでページ数が多いと結構時間がかかったります。出来上がったpdfがちゃんとA3やA4になっているかプロパティを確かめておきます。
  3. 出来上がったpdfファイルをUSBメモリ等のメディアに入れてセブンイレブンに持って行き、文書プリント等で印刷します。両面印刷だと汚れがつく事があるようです。

HDR

HDRは、異なる露出で撮影された複数の写真を合成して、暗部や明部のトーンの少ない部分でも細かいトーンを出したり、飛んだり潰れたりするのを防いだり、自然な視覚を再現したり不自然な画像を作ったりする技術です。 具体的にはカメラを三脚で固定し段階露光を行い、画像編集ソフトや専用のソフトでレイヤー合成します。

デジタル撮影した3枚の画像をGIMPで合成したもので、どちらもHDRです。本来ならば、室内が真っ暗だったり、空が真っ白だったりする場面です。

unique

enlarged digital photograph / uniqueは最初すごく簡単なものに思えたのですが、実際にやってみるとかなり大変でした。どういう所が大変だったかというと、1・容量が8Gほど(!!)大きくなり、ハードディスクの空きが足りない。2・ファイル数が莫大になり、扱いにくい。3・そのような大量のファイルをアップロード出来る場所が少ない、という感じです

1は余計なHDの色んなファイルを処分してなんとか解決し、2はxargsやスクリプトを使ってなんとかし、3はgoogleを使わせてもらうことでなんとか解決しました。

dcraw


dcrawはフリーのraw現像ソフトで、最新の機種のrawでも比較的速く対応されています。
今回、dcrawのグラフィカルフロントエンドであるufrawがまだeos kiss x2に対応していない(※現在のverではすでに対応されています)ので、このdcrawを直接使ってraw現像してみます。

dcrawでなにもオプションを付けずに現像するとこんな感じになります。
$ dcraw rawphoto.CR2

等倍↓

なんか気に入らないので、補完のオプションを付けてみます。
-q 0 バイリニア
$ dcraw -q 0 rawphoto.CR2

コントラストを上げてみます↓


-q 1 VNG
$ dcraw -q 1 rawphoto.CR2




-q 2 PPG
$ dcraw -q 2 rawphoto.CR2




-q 3 AHD
$ dcraw -q 3 rawphoto.CR2

これがデフォルトみたいです。


-fをつけると少しなめらか?になります
$ dcraw -q 1 rawphoto.CR2



-dや-Dをつけると無補完のグレースケール画像になります。
$ dcraw -d rawphoto.CR2

$ dcraw -D rawphoto.CR2

それぞれ拡大するとこんな感じ


カラーなら-q 1グレースケールなら-Dが良さそうです。

ノイズを減らしてみる
dcrawにノイズ除去の機能があるようなので使ってみます。
$ dcraw -q 1 -n 50

$ dcraw -q 1 -n 50 (等倍)

$ dcraw -q 1 -n 100

$ dcraw -q 1 -n 300

$ dcraw -q 1 -n 600

$ dcraw -q 1 -n 1200

GREYCstorationのノイズ除去

値は大きくても150くらいがだいたい適当かもしんない

hug-in(予定

back