夜の写真のノイズを減らす:どれだけ減って、何を失う?
作成 · 更新 · 運営者(個人)
暗い部屋で撮った写真を明るくすると、壁にざらざらした点が見えてきます。「ノイズを軽減」を上げると滑らかになりますが、布の模様や小さな文字まで一緒にぼやけることがあります。ノイズがどれだけ減り、何を失うのか、自分でノイズを加えた画像で測りました。
ノイズを加えた画像で測りました
1200×800の暗い部屋の画像を描きました。壁の明るさは0〜255のうち約40と暗く、スタンドの光、幅3ピクセルのしまが入った布、「ROOM 204 23:41」のような文字、本棚を入れています。そこに、色ごとに標準偏差10のノイズを決まった乱数で加えました。ノイズのない元画像があるので、処理の後でどれだけ元に近づいたかを測れます。
見たのは3つです。平らな壁の明るさがどれだけ揺れているか(標準偏差、低いほど滑らか)、布のしま模様が元の何%残ったか、文字の部分が元画像とどれだけ似ているか(SSIM、1に近いほど似ている)です。滑らかさと模様は反対の方向に動きやすいので、片方だけを見ると判断を誤りがちです。
「ノイズを軽減」50と100の結果
壁の揺れは、ノイズを加えた後で7.47でした。「ノイズを軽減」50で5.64、100で3.99と、約47%減っています。元画像とのPSNRも28.1dBから34.5dBに上がり、文字の部分のSSIMは0.719から0.880になりました。その代わり、布のしま模様は50で91%、100で82%しか残りませんでした。
ノイズのない元画像に同じ100をかけてみると、しま模様は85%に薄くなりました。つまり、模様が少し薄くなるのはノイズの有無にかかわらず、この設定が払う代償です。今回の画像では、その代償を払っても文字がはっきりしたので100が得でしたが、布や髪が主役の写真なら50あたりで止める方がよいかもしれません。
「ぼかし」で消してはだめ?
「効果」の「ぼかし」でもノイズは消えます。ぼかし10は壁の揺れを1.99まで下げていちばん滑らかでしたが、布の模様は20%しか残らず、文字のSSIMも0.781と「ノイズを軽減」100より低くなりました。ぼかし5は壁4.26、模様74%で、「ノイズを軽減」100よりノイズは多く残り、模様は多く失われました。
ぼかしは境目も平らな所も区別せずに混ぜるので、文字や模様まで一緒に潰れます。「ノイズを軽減」は明るさの差が大きい隣同士はあまり混ぜないように作られていて、文字の輪郭をより守ります。ノイズには「ノイズを軽減」を先に使い、ぼかしは写真をわざと柔らかくしたいときに使うのが合っています。
それでも残るノイズは?
「ノイズを軽減」は100でも壁の揺れを半分ほどにしか減らせませんでした。MiruKitの調整は近くの周りのピクセルだけを見る軽い方式なので、とても粗いノイズを完全には消せません。100まで上げても気になるなら、別のスライダーを探すより、写真を実際に使うサイズで見直してください。スマホの画面で小さく見る写真なら、100%表示とは印象が違うことがあります。
ノイズは明るくすると一緒に大きくなります。暗い写真を明るくするとき「暗い部分」を上げすぎると、隠れていた点がもっと出てきます。明るさを決めてからノイズを見る順番がよいのはこのためです。次に撮るときは、スマホを何かに当てて固定したり、明かりをもう1つ付けたりすると、最初からノイズの少ない写真になりやすくなります。
保存した結果はプレビューと同じ?
プレビューは軽く動くように小さいサイズで計算しますが、保存するときは元の写真のサイズで計算し直します。「ノイズを軽減」が見る範囲も写真の大きさに合わせて広がるので、大きな写真だからといって効果が急に弱くなることはありません。今回の1200×800の画像は、保存と同じ経路でテスト用PCで約0.8秒かかりました。それでも最後の確認は、保存したファイルを開き直して同じ場所を見るのが確実です。
MiruKitで調整する手順
- 「写真補正とフィルター」で写真を開き、「100%」を押して実際の大きさで見ます。
- 「明るさ」で先に明るさを整えます。ノイズは明るくした後でよく見えるので、明るさを決めてから見ます。
- 「細部」の「ノイズを軽減」を50から上げます。壁や空のように平らな所と、布や髪を交互に見ます。
- 模様や小さな文字がぼやけすぎたら、値を少し下げます。「元の写真」と「仕上がり」を押して比べると違いが分かりやすくなります。
- 保存した後に開き直して、同じ場所を確かめます。保存時は元の画像サイズで処理されます。
MiruKitで実際に確認した結果
| 設定 | 壁のノイズ | 布の模様 | 文字のSSIM | 全体のPSNR |
|---|---|---|---|---|
| ノイズを追加(σ10) | 7.47 | 100% | 0.719 | 28.1 dB |
| ノイズを軽減 50 | 5.64 | 91% | 0.803 | 31.0 dB |
| ノイズを軽減 100 | 3.99 | 82% | 0.880 | 34.5 dB |
| 効果 · ぼかし 5 | 4.26 | 74% | 0.853 | 32.8 dB |
| 効果 · ぼかし 10 | 1.99 | 20% | 0.781 | 34.6 dB |
| 元画像 + ノイズを軽減 100 | 0 | 85% | 0.997 | 51.6 dB |
自作の1200×800の暗い部屋の画像(壁の明るさ約40)に、チャンネルごとに標準偏差10のノイズを固定の乱数で加えました。写真補正の保存と同じprocessImageの経路で処理しています。壁のノイズは平らな壁の範囲の明るさの標準偏差、模様は3pxの布のしま模様が元の何%残ったかです。


知っておきたいこと
今回の値は、決まったノイズを加えた自作画像1枚の結果です。実際のカメラのノイズは色や粒の大きさが違うので、減り方も変わることがあります。
ノイズを減らした写真は、元の写真とは別の名前で保存しましょう。あとで補正し直すときは、元の写真から始める方がきれいに仕上がります。