3

画像(実際にはビデオの一連のフレーム)で車両を検出しようとしています。私はopencvとpythonが初めてで、Windows 7で作業しています。

画像の水平エッジと垂直エッジを取得し、結果の画像をそれぞれのベクトルに合計する方法はありますか?

これに利用できるPythonコードまたは関数はありますか。

これこれを見ましたが、それを行う方法の手がかりが得られませんでした。次の画像を説明に使用できます。

編集

私は次の論文で提示されたアイデアに触発されました (アクセスできない場合は申し訳ありません)。

ベトケ、M。Haritaoglu, E. & Davis, LS 移動車両からの複数車両のリアルタイム検出と追跡 マシン ビジョンとアプリケーション、Springer-Verlag、2000、12、69-83

http://i.stack.imgur.com/y5MXl.jpg

4

3 に答える 3

1

ここに投稿されたopencvの正方形の例を見てみましょう。これはキャニーを使用し、輪郭検索を実行して各正方形の辺を返します。このコードを変更して、探している水平線と垂直線を取得できるはずです。これは、キャニーの python 呼び出しに関するドキュメントへのリンクです。あらゆるエッジ検出に役立ちます。約 1 時間で私は家に帰り、あなたが望んでいるものの実例を紹介することができます。

于 2013-03-05T22:18:25.500 に答える
1

ソーベル フィルターを読んでください。

http://en.wikipedia.org/wiki/Sobel_operator

基本的に、各ピクセルで垂直方向と水平方向のグラデーションを取得できます。

これがそのためのOpenCV関数です。

http://docs.opencv.org/modules/imgproc/doc/filtering.html?highlight=sobel#sobel

このフィルタリングされた画像を取得したら、列/行ごとに統計を収集し、それがエッジであるかどうかを判断してその場所を取得できます。

于 2013-03-06T23:49:52.600 に答える