短い答え
画像スタックを開き、連写をまるごと落として、何を消したいのかで手法を選んでください。
- ノイズで、何も動かなかった場合|平均。
- ノイズで、何かが動いた場合|シグマクリッピング。
- 人、車、飛行機|中央値。
- 星の軌跡にしたい暗い空|比較明。
- 被写界深度のほとんどないマクロ|深度合成。
ノイズ低減には、三脚で撮った夜空も含めて自動の遠近補正から試してください。カメラが静止していても星は動きます。星の軌跡を残したい場合や、すでに位置が合うフレームにはしないを使います。RAWファイルは使えるJPEGプレビューが入っていればそのまま使えます。一覧には画像の実際の寸法を表示します。
以下はすべて、その5行がなぜそうなのかという話です。
複数のフレームが1枚より多くを抱えている理由
暗いところで撮った写真は、絵とノイズの足し算で、そのノイズは毎回違います。スタックが効くのは、この最後のところのおかげです。同じ場面を16回撮れば絵は16枚とも同じですがノイズはそうではないので、平均を取れば絵が残り、ノイズの大半が打ち消されます。
よくなる度合いは枚数の平方根です。4枚でノイズは半分、16枚で4分の1、100枚で10分の1になります。乗っているには厳しい曲線で、16枚から64枚へ行けば同じだけよくなりますが、撮る手間は4倍です。実際のスタックがほぼ8枚から30枚のあいだに収まるのはそのためです。
平均は階調の推定も安定させます。ノイズのある各フレームは、少しずつ違う値に丸められているからです。道具は広い累算器を使い、合成した値を最後に丸めます。保存するPNGやJPEGは各チャンネル8ビットのままです。きれいな平均値になっても、出力のビット深度は増えません。
手法を決める問い
問いは「何を残したいか」ではなく、フレームのあいだで何が違っていたかです。あとはそこから決まります。
何も動かなかった場合|平均
ただの平均です。フレームのあいだの違いがノイズだけである一組には、これがいちばん効くノイズ低減であり、いちばん壊れやすいものでもあります。鳥が1羽写り込んだフレームが1枚あるだけで、スタック全体に薄い鳥が乗ります。平均は、ほかと食い違う値について何の意見も持たないからです。ただ足してしまいます。
何かが画面を横切った場合|中央値
混み合った広場の写真を十数枚重ねて、画素をひとつ見てください。多くでそれは舗装で、1枚か2枚では誰かのコートです。その十数個の値を並べて真ん中を取れば舗装が出ます。コートは一度も多数派だったことがないからです。
それをすべての画素でやると、広場は無人で出てきます。「旅行の写真から観光客を消す」式の記事の裏にあるのはこの手で、連写と辛抱よりも賢いものは要りません。ひとつだけ求めるのは、場面のどの部分も半分より長く占められていないことです。12枚のうち8枚でじっとしていた人は、その画素では多数派なので、中央値はその人を残します。
両方が要る場合|シグマクリッピング
中央値は、独立したランダムノイズを減らす効率では平均に劣ります。全数の平均ではなく、中央の値か中央の2つの値を使うからです。その代わり、ほかと大きく違う少数の値に影響されにくくなります。
シグマクリッピングは最初に各チャンネルの平均とばらつきを推定し、選んだしきい値内の値だけを平均します。少数のフレームにだけ写ったものを除き、残りの背景を平均できる場合があります。枚数が少ない場合や頻繁に写る場合は信頼性が下がります。初期しきい値では、同じ値4つと異なる値1つがあっても、その異なる値を採用することがあります。ノイズ低減より物体の除去が重要なら中央値を使ってください。
しきい値は標準偏差で指定し、初期値は2です。下げると多くの値を除きますが、本来の細部も失う場合があります。あるチャンネルの値をすべて除いた場合は、穴を残さずに元の平均値を使います。
明るいものだけが問題な場合|比較明
各画素がこれまでに持ったいちばん明るい値を残します。夜空を30秒露光で200枚撮って比較明で重ねると、星がそれぞれ自分の弧を結果に描きます。1枚では白飛びしなかった短い露光から組み上げた星の軌跡です。同じ手法が花火をそれ自身の爆発のフレームから組み直しますし、暗い部屋を懐中電灯を持って歩いた記録をライトペインティングにします。
その裏返しの比較暗は、この対の静かなほうです。画素が明るいまま残るのはすべてのフレームで明るかったときだけなので、窓の映り込みも、通り過ぎるヘッドライトも、ストロボに光る雨粒も消えます。
被写体がピントより厚い場合|深度合成
f/8のマクロでピントが合うのはおそらく1ミリほどで、昆虫には足りません。答えは、フォーカスリングを回しながら20枚撮り、各フレームからそこで鋭かった部分だけを残すことです。道具は各画素が周りとどれだけ違うかを測ります。縁では大きく、ぼけではほぼ0です。そして勝ったほうを取ります。
これはほかのどれよりも三脚を求めます。フォーカスリングを手で回すとカメラが動きますし、少し遠くから撮られたフレームは、ピントだけが違う同じ絵ではないからです。
明るい合成:加算
加算はデコードした画像の値を合計してから、露出の倍率を掛けます。値は8ビット画像のものなので、結果は加算合成であり、カメラの長時間露光を再現するものではありません。明るい部分は上限に達する場合があります。明るさを正規化では倍率を1÷フレーム数にします。さらに小さな倍率を直接入力することもできます。
フレームの位置合わせ
スタックは画素ごとの計算なので、ある画素がどのフレームでも場面の同じ部分だと前提しています。手持ちではそうなりません。連写は数十画素も流れますし、それを平均すればきれいな絵ではなくぼけができます。最初のスタックががっかりする理由として飛び抜けて多いのがこれです。
各フレームを基準と表示したフレームと比較し、信頼できる補正が見つかったときに位置を戻します。初期状態では最初のフレームが基準です。これを基準にするで、一覧を並べ替えずに基準を変えられます。静止した細部がはっきり写った、ピントの合うフレームを選んでください。位置合わせの設定は4つです。
- 初期設定は自動の遠近補正です。ずれ・回転・拡大縮小を補正し、画像全体の十分な数の信頼できる測定結果が一致すれば遠近も補正します。中央は合っても端の星が流れて写るような、広い画角の夜空の連写に役立ちます。安定した遠近のモデルを求められない場合は、より単純な補正を使います。
- 平行移動だけは、回転や遠近の変化がなく位置だけがずれた連写に使います。平行移動のみを補正します。
- 平行移動・回転・拡大縮小は、少し回転したりズームが動いたりした撮影に使います。フレームがまっすぐでも、各フレームに追加の測定が必要です。
- 静止したフレームがすでに合っている場合や、動く星を軌跡にしたい場合はしないを使います。三脚でも夜空の連続撮影中に星を同じ画素に保つことはできません。
どんな位置合わせでも直せないのは、カメラではなく被写体が動いた場合ですし、一歩左から撮った写真も直せません。横に動くと、近くのものが遠くのものに対してどれだけずれるかが変わりますが、その2つを同時に説明する補正はありません。その場で回るのは平気で、歩くのはだめです。
スタック後は位置合わせの詳細を開き、各フレームの状態と補正を確認してください。位置合わせできなかったフレームは元の場所のまま含まれます。結果がぼやけるなら削除してやり直してください。結果は左に基準、右にスタックを表示して開きます。マウスや指で仕切りをドラッグするか、仕切りにフォーカスして左右の矢印キーで動かしてください。端まで動かすと画像全体を表示できます。仕切りはウィンドウに合わせるで使えます。100%|実際の画素を選ぶとスタック結果全体を表示し、比較の選択肢がなくなります。100%では画像をドラッグして表示位置を移動できます。プレビューにフォーカスして矢印キーでも移動できます。表示で基準かスタックを個別に確認できます。再び仕切りで比べるときは、ウィンドウに合わせるに戻してください。
RAWファイルがどこに収まるか
CR2・CR3・NEF・ARW・DNG・RAF・RW2・ORFなどは、使えるJPEGプレビューが入っていれば開けます。RAWのセンサーデータを現像する処理とは違うので、何が起きるかを説明します。
多くのRAWファイルにはカメラが描画したJPEGプレビューが入っています。道具は使える最大のものを見つけ、ブラウザの通常の画像デコーダーで開きます。プレビューがセンサー画像より小さい場合も、入っていない場合もあります。各フレームの寸法を確認してください。
結果は2つ、ひとつはよいほう、ひとつは知っておくべきほうです。
- センサーのデコードを省けます。プレビューの探索では通常、ディレクトリとヘッダーを少しずつ読み、その後ブラウザがJPEGの部分を読んでデコードします。表示する検査の読み取り量はディレクトリとヘッダーの分で、画像デコーダーが読んだ全バイト数ではありません。
- あなたの解釈ではなく、カメラの解釈です。1チャンネル8ビットで、カメラに設定されていたホワイトバランスとピクチャースタイルが入ります。現像ソフトから得られる12ビットや14ビットの線形なセンサーデータではありません。
使えるプレビューがあれば、ノイズ低減、星の軌跡、通行人の除去、深度合成には十分な場合があります。限界はその寸法とカメラの描画です。ホワイトバランスや階調を自分で調整したり、RAWの暗部を復元したりしたいときは先に現像し、JPEGかPNGで書き出してここでスタックしてください。保存する結果は8ビット画像のままです。
動かす費用
知っておく価値があります。8秒で終わるスタックと、2分かかるスタックの差だからです。
6つの手法では、累算器のサイズはフレーム数が増えても変わりません。平均・比較明・比較暗・加算・深度合成は帯ごとに1回のスタック処理が必要です。シグマクリッピングは平均とばらつきの推定、採用した値の平均の2回です。検査と位置合わせでもファイルをデコードするため、スタック処理が1回でも、読み取り全体が1回で済むわけではありません。
中央値は、現在の帯について全フレームの値を保持する必要があります。2400万画素の20枚なら、その値だけで約1.4 GB必要です。帯に分けると一度に処理する行が減りますが、帯ごとに各フレームを再デコードします。ほかの手法も、作業バッファが予算を超えれば帯に分けます。
実行前に、予定の結果寸法、推定作業メモリ、スタック時の予定デコード回数、検査で読んだバイト数を表示します。メモリ見積もりにはモデル化した作業バッファを含みますが、ブラウザ内部やメモリ回収のために総使用量が増える場合があります。作業解像度を1段下げると画面の面積は4分の1になり、再デコードを減らせる場合があります。位置合わせで結果が切り取られると、当初の計画より少ない帯で済むこともあります。
それを見越して撮る
スタックの出来のほとんどは、どのソフトがそれを見るより前に決まっています。
- 必要だと思うより多く撮ってください。平方根の曲線は手前で厳しく、奥で寛容です。4枚から9枚へ行くほうが、20枚から40枚へ行くより見た目の変化が大きくなります。
- フレームのあいだで露出を変えないでください。スタックは、フレームが同じ場面を同じ明るさで写したものだと前提しています。露出を固定しないと、道具は違う2つの絵の平均を取ることになります。
- 人を消したいなら、フレームのあいだで待ってください。2秒で撮った連写は同じ人を毎フレーム同じ場所で捕まえますし、中央値はその人を残します。数秒ずつ空けた10枚のほうが、連写の50枚よりはるかにうまくいきます。
- 星の軌跡なら、間隔を短く保ってください。比較明はフレームが記録したとおりに描くので、露光と露光のあいだの休みが、どの軌跡にも見える切れ目として出ます。
このどれも手元の端末から出ていきません
RAWフレーム20枚はおよそ1ギガバイトの写真で、平均を取ってもらうためにサイトへ渡すには多すぎます。画像スタックはファイルを手元のディスクから読み、計算を手元のブラウザで行います。アップロードの段階も、アカウントも、順番待ちもありません。そしてその主張は、誰の主張でもそうするように確かめられます。動いているあいだブラウザのネットワークパネルを開いてみるか、単に回線を切ってからスタックしてみてください。
それに続く問い、つまりどんな道具についても、ファイルを渡す必要が本当にあったのかをどう見分けるのかには、それ専用のガイドがあります。