2017-09-13 9 views
1

私は画像を読んでいて色を除外しています。これは次の画像で得られた結果です。コードは、opencvモジュールのexampleフォルダにあります。カラーフィルターテクニックOpenCV

Prior Color FilterPost Color Filter

私は戻ってA.R Drone 2.0に絵を供給し、ドローンは、色の白に従わ持ってしようとしています。私はどのようにして2番目の部分をやりますか?

var cv = require('C:/users/danny/codes/node_modules/opencv/lib/opencv'); 

// (B)lue, (G)reen, (R)ed 
var lower_threshold = [220, 220, 220]; 
var upper_threshold = [255, 255, 255]; 

//var lower_threshold = [46, 57, 83]; 
//var upper_threshold = [80, 96, 115]; 

cv.readImage('C:/users/danny/codes/node_modules/opencv/examples/files/gutter.jpg', 
    function(err, im) { 
    if (err) throw err; 
    if (im.width() < 1 || im.height() < 1) throw new Error('Image has no size'); 

    im.inRange(lower_threshold, upper_threshold); 
    im.save('C://users/danny/codes/coin_detected.jpg'); 
    console.log('Image saved to C://users/danny/codes/coin_detected.jpg'); 
    }); 
+1

2番目の部分では、無人機を移動する軌道を計算することを意味しますか?または、Parrot SDK(http://developer.parrot.com/)とのインターフェイスですか? – Mepix

+0

ドローンの軌跡を白線に従って移動します。私は 'node.js'を使用しています。 SDKが何であるか分かりません。 – Danny

+1

このSDKは、ドローンを制御するためのソフトウェア開発キットです。 Parrot DronesのSDKドキュメント(http://developer.parrot.com/docs/SDK3/)へのリンクです。私はあなたのA.R. Drone 2.0は、SDK2に対応しています。SDK2もWebサイトにあります。 – Mepix

答えて

2

あなたのドローンは、3D空間内で移動することができますので、私はあなたが単純な行フォロワーを始めるために、2D領域におけるいくつかの擬似コードのステップを提案します。次に、3Dに外挿して、自由度を追加してニーズに合わせることができます。

  1. Erosion/Dilationを実行して、必要に応じて余分なスペースを取り除いてください。
  2. cv::findContours()に電話すると、画像の白い部分のエッジをトレースできます。
  3. 見つけた輪郭をピクセル領域で並べ替え、追跡したい輪郭を見つけます。私は、ほとんどの場合、最大のピクセル領域に従いたいと思うでしょう。 contour momentsをお試しください。
  4. cv::fitline()または独自の方法で輪郭線を合わせます。
  5. ラインの角度をとり、ドローンコントローラにマップしてヨーを調整します。

ここから、あなたはあなたのドローンの動きを制御するには、いくつかの他の基本的なことを行うことができます。

  • 設定する輪郭画素塊のしきい値を。輪郭領域>閾値の場合、上に移動します。
  • スレッショルド領域の形状を見てください。それが四角形よりも台形に近い場合は、ロール/ピッチを調整できます。
+0

私はそれらのコマンドを見ます。有難うございます。私はJavaScriptでそれを書くことはできますか?または、私は何とかopencv関数を自分のnode.jsに呼び出すべきですか?それは正しい考えですか? 2つの言語をどのようにリンクさせるか、私が間違って考えているかどうか、私により良い考えを教えてもらえますか? – Danny

+0

には、 'opencv'を使って無人機を動かす方法があります。またはnode.jsが必要です – Danny

+0

私はこのライブラリを使用しています:https://github.com/puku0x/cvdrone。無人機コントローラへのマッピングであなたが言及したことは、どうすればよいでしょうか。輪郭領域>閾値 – Danny