プログラミングの芽

面白そうな技術を使って、楽しいことやりたい

PythonとOpenCVでエッジ検出

Webカメラの映像のエッジ検出をする。

手順

Webカメラから画像を取得
・RGB画像を白黒の1次元に変換
・ガウシアンフィルタで画像を平滑化(ぼかす)
・Canny法でエッジを検出

画像をぼかしたほうがエッジ検出の質が良くなります。

使う関数

白黒変換
cv2.cvtColor( 変換したい画像 , cv2.COLOR_BGR2GRAY)

ガウシアンフィルタ
kernel = np.ones((5,5),np.float32)/25
cv2.filter2D( フィルタをかける画像 , -1, kernel)

エッジ検出
cv2.Canny( 検出したい画像 , 50, 200)

ついでに

ハフ変換で円を検出
cv2.HoughCircles( 検出したい画像 ,cv2.HOUGH_GRADIENT,1,20,
param1=350,param2=25,minRadius=0,maxRadius=0)
param1はエッジ検出で設定したmax値が良いらしい
param2は検出の緩さ。