携帯電話のカメラで撮った画像の一部に焦点を当て、顔などと言います。私が知りたいのは-およそ-どこに焦点が当てられているかです。たとえば、フォーカスされた領域の周囲の境界ボックス。例:
携帯電話のカメラで撮った画像の一部に焦点を当て、顔などと言います。私が知りたいのは-およそ-どこに焦点が当てられているかです。たとえば、フォーカスされた領域の周囲の境界ボックス。例:
回答:
一般に、これは画像のセグメンテーションの問題(http://en.wikipedia.org/wiki/Image_segmentation)であり、画像のフォーカスされた領域とフォーカスされていない領域を分離しようとしています。
光学レンズはいずれにしてもローパスフィルターと同等であり、信号に対するローパスフィルターの効果は、高周波成分を制限することによって平滑化することです。
デジタル画像処理では、低い周波数は大きなオブジェクト(一般的な形式)に対応し、高い周波数は小さなオブジェクト(詳細)に対応します。
したがって、焦点の合った領域を分離するには、焦点が合っていないレンズの平滑化操作のために標準偏差が低いぼやけた領域に対して標準偏差が高い領域を探す必要があります。
投稿の画像の場合、ヒストグラムは2つのモードを示す可能性があります。1つは標準偏差の比較的高い値(焦点の合った領域)に対応し、もう1つは標準偏差の比較的低い値(ぼやけた領域)に対応します。
次に、たとえば2つのモードの間にしきい値を配置して、フォーカス領域と非フォーカス領域の間の基準を確立し、標準偏差がしきい値よりも高いすべての「パッチ」(またはMxNウィンドウ領域)を選択できます。(詳細については、http://en.wikipedia.org/wiki/Thresholding_%28image_processing%29を参照してください)
これにより、画像の焦点が合っている部分が分離されます。
お役に立てれば。
スライドウィンドウ分析を含まない、より簡単な方法を次に示します。
画像をグレースケールに変換します(これは必須ではありませんが、わかりやすくするために、チャネルは1つだけであると想定しています)
両方向の勾配を計算します
マグニチュードを計算する(または単に勾配を二乗する)
両方向の両方の勾配画像を合計する
すでに述べたように、画像の焦点が合っている部分は、焦点が合っていない領域よりも周波数が高くなります。合計から、2つの投影が得られます。ここでは、フォーカスされたオブジェクトがこの方向に沿って配置されている部分に多くの変動(高い値)があります。これで、次のことができます。
これらの高い値の開始点と終了点を決定します。単純なしきい値(たとえば、0.7 * maximum_value)を使用するか、プロファイルを平滑化し、2次導関数を取り、そこで最高値を確認できます。
前のステップの開始/停止位置は、シャープネスの領域を示す長方形を配置する両方向に沿ったピクセル位置を示します。