二次微分オペレータを用いたエッジ検出
隣接する画素の変化が激しい箇所をエッジとして検出するアルゴリズムです。 各セルの隣り合ったセルとの変化量を微分し、変化の大きい箇所を検出します。
飛び出し坊やくんのエッジ検出をして遊んでみます。
img_tmp = cv2.Sobel(img_src, cv2.CV_32F, 1, 0) img_dst = cv2.convertScaleAbs(img_tmp) img_dst = cv2.bitwise_not(img_dst);
※ネガポジ変換しています
エッジは期待したものが全て検出できましたが、 元画像と見比べると、明るい色→明るい色のエッジは薄い色に(例:ズボンと手の間)、明るい色→暗い色のエッジは濃い色に(例:髪の毛と顔の間)なってしまっています。
Canny法という性能が良いエッジ検出があるので次のエントリではそちらを紹介したいと思います。