ImageMagickで「自然な彩度」強調

2014/07/05 00:40
fallabs

Photoshop等で実装されている「自然な彩度」強調機能と似たようなことをImageMagickでもできないかと思って検討してみた。

自然な彩度とは

Adobe Photoshopの最近の版では、色を濃くしたり薄くしたりするための設定として、「彩度」と「自然な彩度」の二種類がある。Android標準の写真編集機能にもその二つがある。Adobeのページによると、"従来の「彩度」が適用範囲の彩度を均等に調整するのに対して、「自然な彩度」は彩度が高いカラーへの影響を抑えながら、彩度が低いすべてのカラーの彩度を調整します。" とのこと。


Adobe RGBの写真を適切に扱う方法

2013/08/16 17:19
fallabs

UNIX(Linux)上でAdobe RGBの写真を扱う方法についてまとめてみた。

sRGBとAdobe RGB

デジカメで写真を撮る際には、sRGBAdobe RGBという二つの色空間を選択できることが多い。色空間とは、RとGとBの3次元空間の個々の座標をどの色に対応づけるかという仕様である(3次元以外の規格もあるが)。詳しくはこちらのサイトが非常にわかりやすい。

たいていのデフォルト設定であるsRGBは、普及品の多くのディスプレイやプリンタで表示できる色を表現するために必要十分な仕様になっている。また、sRGBはJPEGのデフォルトの色空間でもあり、画像を表示するためのほぼ全てのソフトウェアやハードウェアはsRGBのプロファイルを持っている。よって、sRGBの画像データは特別な設定なしに同じ色で表示される。


JPEG 2000の色深度と圧縮レベルと画質

2013/07/21 21:54
fallabs

写真の画像データをRAW形式でなくJPEG 2000形式で保存する際に適切な圧縮パラメータを探ってみた。

RAW形式

デジカメで写真を撮る際に、後で編集することを考えてRAW形式で保存することがある。RAW形式のデータは各ピクセルのRGB各チャンネルで12ビットまたは14ビットのデータを持つ。12ビットの場合だとRGB各チャンネルにて2^8の4096階調を保持するということだ。RGB原色フィルタ方式のセンサーを積んだほとんどのデジカメでは実際には各々の画像素子にて1チャンネル分のデータしか保持せず、残りのチャンネルは周辺の画像素子の情報から補完するわけだが、とにかくJPEGよりも豊富な情報を保持している。


擬似HDRによる自動露出補正

2013/05/27 01:38
fallabs

素人が適当に撮ったを自動補正で見やすくするツールを模索する日々であるが、擬似HDRを実装したことでさらに強力になった。まずは以下のデモツールを使ってみてほしい。

暗すぎる写真も、明るすぎる写真も、コントラストが低すぎてパッとしない写真も、ボタンひとつでそれっぽくなることがおわかりいただけるだろう。

トーンカーブによる露出補正の限界

今までは、入力された画像データに対して、ガンマ補正とシグモイド補正をかけることで各画素の輝度を調整していた。liquid rescaleや顔検出を用いて主要被写体を推定し、その部分の階調を強調し、それ以外の階調を犠牲にするという手法である。この手法を突き詰めると、Photoshop等でトーンカーブを手動で設定して輝度を補正する作業を人間が行った結果を自動化して得ることができるということになる。


顔検出とリキッドリスケールの併用による露出補正

2013/04/21 03:37
fallabs

前回に引き続き、requid rescaleに基づく主要被写体推定の改良案について述べる。今回はOpenCVの顔検出結果を応用する。

requid rescaleと顔

requid rescaleは、画素間の差異が少ない領域を優先的に削ることで、画像の中の目立った要素を残しつつ、画面のサイズを縮小する手法である。この手法は顔を含む画像と相性が悪い。顔は重要な被写体であるにもかかわらず、肌が滑らかなので、liquid rescaleによって旺盛に削られてしまうからだ。例えば、何も工夫せずに人物写真にliquid rescaleをかけるとこんな風に可哀想なことになってしまう。