MATLAB Answers

画像のSNR(SN比)について

144 ビュー (過去 30 日間)
satoshi katayama
satoshi katayama 2019 年 10 月 21 日
コメント済み: Hiroyuki Hishida 2019 年 10 月 24 日
ある計測対象をカメラで撮った画像にはノイズが乗っていて、それをノイズ除去したいと考えています。
ノイズ除去する際の画像処理では、平均化フィルター、メディアンフィルター、など様々なフィルターがあるのですが、それぞれのフィルターで処理した後、どの処理方法で最もノイズ除去ができているかを知りたいのです。(ちなみにフィルターは、MatlabやOpencvでコーディングしたものを用います。)
そこで、先生はは画像のSNRを用いるのがよいと言っているのですが、SNRをどのようにして計算すればいいのでしょうか?
SNRは本来、原画像とノイズの乗った画像を比較するもので、今回は、ノイズの乗っていないきれいな画像がないため困っています。
何かいい方法ありましたらご教授ください。

採用された回答

Hiroyuki Hishida
Hiroyuki Hishida 2019 年 10 月 22 日
編集済み: Hiroyuki Hishida 2019 年 10 月 22 日
Katayama様、
MATLABの問題ではないようにお見受けします。ですが、MATLABで画像間のSN比をどうやって計算するのかというご質問であるとすれば、たとえば以下が参考になるかと思います。
さて、MATLABの質問ではないという私の予想があっていた場合なのですが、答えのようなものだけを記載することは、「先生」の期待されている展開ではないように思いますし、Katayama様の期待する展開にもならないように思います。従いまして、ヒントのようなものを記載させていただきます。
お困りの点はいくつかあるように思われます。その中の一つは、「ノイズの乗っていないきれいな画像がない」ことだと思われます。これをどうやって解決するかですが、逆に、いくつか質問させていただきます。
1、ノイズとはなんでしょうか?より具体的な日本語や数式で表現できませんでしょうか?
2、「1」とも関連しますが、きれいな画像とはなんでしょうか?こちらも上記と同じように、より具体的な日本語や数式で表現できませんでしょうか?
3、ないなら、作るか、異なる方法をとることになるかと思いますが、今回はいかがでしょうか?
なお、ご質問される際には、ご利用いただいておりますMATLABのバージョン(R2019b等)および、ツールボックス名(Image Processing Toolbox等)を記載いただければ、的確に回答できるかと思います。
どうぞよろしくおねがいします。
Hishida

その他の回答 (1 件)

satoshi katayama
satoshi katayama 2019 年 10 月 23 日
Hishida様、回答ありがとうございます
正直言って、私の質問はMatlabとはあまり関係ないかもしれません。
研究なので、なるべく自分で頑張ろうと思って挑戦しましたが、ちょっと手詰まってしまいました。
ノイズの件ですが、カメラで物体を撮影した際のショットノイズのことです。
そこで、そのショットノイズを取り除きたいと考えています。
ノイズ除去にはやり方が様々あり、どの方法でノイズ除去を行うのがよいのかを調べたいと考えています。
そこで、ノイズ除去した画像を定量的に評価するために、SN比を求めるのが良いと考えました。
しかし、SN比は画像間で比較するもので、本来、比較対象は
1 ノイズの全く乗っていない原画像
2 ノイズ除去後の画像
ですが、今回は1番がないという状況です。
そこでノイズ除去後の画像を評価する方法があればご教授いただきたいといった次第です。
  1 件のコメント
Hiroyuki Hishida
Hiroyuki Hishida 2019 年 10 月 24 日
Katayama様、
ご利用ありがとうございます。
一般論としまして、以下を考えてみてはいかがでしょうか?
a. 画像処理系の教科書に似た技術が載っていないか?
b. 論文検索すると、似た先行研究がないか?
c. 画像処理で仮にショットノイズが除去された後、その画像はどういう状態になるか?
d. ショットノイズはどういうメカニズムで発生するのであろうか?撮影を工夫することで、ショットノイズ(だけ)を低減させることはできないものだろうか?
e. 先生や先輩に相談
どのアプローチを採用されるにしても、卒論執筆?されるのであればaとbは欠かせないので、是非、取り組んでみてください。
さて、一休さんのようになりますが、以下を考えてみてください。
今、ある手法を適用して得られた「フィルタ処理後の画像」と、適用する前の「フィルタ処理前の画像」があるとします。これらを比較すればフィルタ処理により除去された成分は把握できますが、この除去された成分の正体として以下の3パターンがありえます。
A. (ショット)ノイズだけ
B. ノイズと原画像の信号の両方
C. ノイズは除去できておらず原画像の信号だけ
Aだと言いきれるのであれば、Katayama様のおっしゃる「ノイズ除去後の画像(すなわちフィルタ処理後の画像)を評価」は意味を成すと思われます。Aだと言い切れないにしても、そうだと仮定する(前提条件をおく)のであれば、これまた意味はあるかと思われます。ただしその場合は、適用する手法ごとに「フィルタ処理後の画像」は変化しますので、何かしらの指標をもってどれかを「ノイズ除去後の画像」に決めてやる必要があるかと思います。
なお、MATLABによる画質評価でしたら、こちらが参考になるかと思います。
また一般論になりますが、大学の方でしたら、学内のネットワークからでしたら各有名雑誌にアクセスできると思います。また学外からでしたら、Googleで、denoise SNR evaluationと入れて検索すると、例えば以下が見つかります(この論文はあくまで例えばの例で、もっと引用に適したものはあるかと思います)。
Sarode, Milindkumar V., and Prashant R. Deshmukh. "Performance evaluation of noise reduction algorithm in magnetic resonance images." International Journal of Computer Science Issues (IJCSI) 8.2 (2011): 198.
どうぞよろしくおねがいします。
菱田

サインインしてコメントする。

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!