0

私は現在、ロボットカー用の趣味プロジェクトに取り組んでいます。 カメラの前で、私は2つの光源を配置し、コンピュータビジョンでは、光源を検出し、その前にロボットの車を置きたいと思います。opencvは光周波数を検出します

ラズベリーパイ3でPythonとOpenCVを使用すると、次の作業ができます。 2つの赤色光源を使用しています。 cvtColor(フレームからHSV)、inRange(赤色フィルタ)、findContours(2つの光源を見つける)、モーメント(光源のx、y座標を得る)、光源からの距離を計算するフレームのエッジを検出し、車がどちらの方向に移動しなければならないかを生成します。今

問題は、私は赤色光源が残っていると、右であるかを判断することができない、です。たとえば、2つの赤色光源を使ってブレッドボードを回すと、プログラムは車が光源の周りを移動しなければならないことを伝えることができません。 - 光源は異なる点滅させるために周波数を使用して :

私はこの問題を解決するために2つのアイデアを持っています。 LEFT(1,0,1)とRIGHT(0,1,0)を考えてみましょう。私は「すべてのフレーム」が必要なので、私はここでスレッドを使用することができないかもしれません。 - 赤と緑の1つの光源を使用しています。このために、緑色を検出するために別々の機能を追加する必要があります。これは処理能力が向上することを意味します。

私はこの分野で経験の浅いですので、私は最高のオプションを選択して苦労しています。何かヒントはありますか?または、どのアイデアが良いですか?

+0

単位時間あたりの1をカウントする閾値とだけ時間信号を使用することができるかもしれ私は、光源が異なる点滅させるために周波数を_using理解していません。 LEFT(1、0、1)とRIGHT(0,1,0)_あなたは説明できますか? – LBerger

+0

@LBerger:1秒の時間枠を使用することは、1秒あたり3フレームを意味します。左(1,0,1)は0.33s ON、次に0.33s OFF、0.33s ONになります。 0.5秒の時間枠も使用できます。これは0.167s ON、0.167s OFF、0.167s ONを意味します。 – HieiFCB

答えて

0

それは完全な答えではないのですが、私はそれはあなたを助けることを願っています。 Iは固定ポイントのフーリエ変換を使用して画素周波数(時間)を推定LedBlinkingFrequencyこのプログラムで

は、スレッドを使用して、(長方形であることができます)。私はあなたがPythonで翻訳できると思います。あなたはフーリエ変換を無効にして