python/OpenCVで輪郭検出してたらなんかかっこいい画像が出来た

OpenCV楽しくてやばいですはい。 輪郭検出も出来るようで、キャニー法とやらを使って軽く遊んで見ました。 遊んでたらなんかかっこいいのが出来ました。

ターゲットにするのは今回はレナさんではなくて、立川で撮ってきた謎の道祖神くん。

立川の謎の道祖神くん

で、肝心のキャニー法の使い方はこんな感じ。

import cv2

img = cv2.imread('in.jpg')

out = cv2.Canny(img, 50, 150)

cv2.imwrite('out.jpg', out)

おお、かつてなく簡単だ。 これだけで輪郭を検出できてしまう。

出力はこんな。

輪郭検出された立川の道祖神くん

パラメータ変えるとちょっとずつ出力が変わって面白いので、3通りやって重ねてみた。

import cv2

img = cv2.imread('in.jpg')

b = cv2.Canny(img, 25, 200)
g = cv2.Canny(img, 50, 150)
r = cv2.Canny(img, 100, 100)

img[:,:,0] = b
img[:,:,1] = g
img[:,:,2] = r

cv2.imwrite('out.jpg', img)

これはこれでシンプル。 赤、青、緑のそれぞれにパラメータ違いで重ねています。

んで、結果がこんな。

3通りの輪郭検出された立川の道祖神くん

超かっこいい!