重複の可能性:
画像がぼやけているかどうかを検出する方法はありますか?
opencvを使用して特定の画像のぼやけと鮮明さを計算する方法は? それを行うためにopencvに関数はありますか?opencv に関数がない場合、どうすれば実装できますか? いやアイデアは素晴らしいだろう..
入力は画像で、出力は画像のぼやけと鮮明さでなければなりません。
重複の可能性:
画像がぼやけているかどうかを検出する方法はありますか?
opencvを使用して特定の画像のぼやけと鮮明さを計算する方法は? それを行うためにopencvに関数はありますか?opencv に関数がない場合、どうすれば実装できますか? いやアイデアは素晴らしいだろう..
入力は画像で、出力は画像のぼやけと鮮明さでなければなりません。
opencvについてはわかりません。
シャープからブラーまでのスペクトルで想像がどこにあるかを概算で測定しようとすると、画像の一部のシャープネスが隣接するピクセル間のコントラストから明らかであるという観察から始めますmax(c1 * abs(r1 - r2), c2 * abs(g1 - g2), c3 * abs(b1 - b2))
。 c1-3は、赤、緑、青の各チャネルの知覚的重要性を評価し、2つのピクセルは(r1、g1、b1)と(r2、g2、b2))です。
明るさスケールの暗い(パワー<1)または明るい(パワー> 1)端での変化を強調するために、パワーへの各色の寄与を上げるなど、多くの調整が可能です。このmax()
アプローチでは、各カラーチャネルのシャープネスが個別に考慮されることに注意してください。たとえば、(255,255,255)から(0,255,255)への変更は、1つのチャネルのみが変更されるにもかかわらず非常に劇的です。
RBGから色相/彩度/値などの別の色表現に変換する方がよい場合があります(HSV空間と変換の式を説明するオンラインサイトがたくさんあります)。
写真的には、通常、画像の焦点が合っている部分が鮮明であることを知りたいと考えています(被写界深度が浅いため、前景/背景のぼけ/ボケは通常の品質であり、多くの場合望ましい品質です)。これを最も明確に示すのは高コントラストです。画像の一部で、隣接するピクセルのコントラストの最大値が必要であることを示唆しています。とは言うものの、焦点を合わせた画像の中には、局所的なコントラストが非常に低いものもあります(たとえば、無地の表面の画像)。さらに、センサーの損傷したピクセル要素、レンズ/センサーの汚れ、および高ISO /長時間露光ノイズはすべて、非常に高いコントラストのスポットとして現れる可能性があります。したがって、結果の妥当性は常に疑わしいものになりますが、それは時間の有用なパーセンテージである可能性があります。
画像を頻繁に分析することをお勧めします。高帯域のエネルギーは画像が非常に鮮明であることを示しますが、低帯域のエネルギーは通常画像がぼやけていることを意味します。スペクトルの計算には、FFTWライブラリを使用できます。
よろしく、