自律ロボットのカメラフィードからの信号をフィルタリングしようとしています。捕捉したフレームをHSVの色空間に変換して、しきい値を設定して信号光とほぼ同じ "赤"の赤いオブジェクトをすべて検出し、ハフ変換を適用して赤色の光を見つけます(明らかにサークル)。ハフ変換を適用するためにHSVをグレースケールに変換する
今ここでの問題は、私はハフは単一チャンネル画像で動作し、私は3で作業しているように見えるので、私はHSVには、以下のコード -
imgFinal = thresholded #initialising the variable with the thresholded image.
framenew = cv2.cvtColor(threshNew, cv2.COLOR_HSV2GRAY)
を使用してグレースケールに画像を閾値変換しようとした変換ことがわかったということです
実行中に、 'module'オブジェクトに 'COLOR_HSV2GRAY'属性がありませんというエラーが表示されます。私はこのトピックに関するいくつかの質問を見つけましたが、私の問題に対する答えはありませんでした。私は赤信号を検出するだけで、チャンネルを分離しようとしましたが、その方法をどのように進めるのか分かりません。私は他のアプローチにもオープンしています。
ありがとうございます!
P.S-これは話題にはなりませんが、このプロジェクトではどの言語をお勧めしますか? C++またはPython?私は両方のためのコードを書いた、私はちょうど使用するものについて混乱しています。私は現在Windows 8.1のPCで開発中ですが、最終プロジェクトにはRaspberry Pi 3を実行する必要があります。
通常、グレースケール画像afaikとしてVチャンネルを使用します。 – Micka
チャンネルを分割する方法がわからないというのですか?もしそうなら、これを見てください:http://stackoverflow.com/questions/6699374/access-to-each-separate-channel-in-opencv。私はPythonを使用していますが、それが十分に速い場合は... – IanB
@IanBそれはC++であり、私のコードで動作するはずです(私は今テストできません)。しかし、チャネルを格納するための変数は行列として宣言されていますが、Pythonではどのようにしていますか?私は両方の言語のコードを記述し、より良い動作をする実験によって見つける予定です。 –