まずは、私はMS Visual Studioを使ってKinecをプログラミングするのがとても新しくなっています...私の質問がちょっとばかげていると申し訳ありません。Kinecの画像で手と物体の接触を検出するC++
私の手が象限の上部に接触しているかどうかを検出したいと思います。そのため、私はプログラムの開発:
Image<Gray, Byte> HandImage = GetThresholdedImage(ref bgrImage, (int)hueHand);
Image<Gray, Byte> depthImageBin = depthImage.ThresholdBinary(new Gray(30), new Gray(255));
List<MCvBox2D> DangerAreas = new List<MCvBox2D>();
List<MCvBox2D> HandAreas = new List<MCvBox2D>();
// build list of object rectangles
DangerAreas = ProcessObjectContours(bgrImage, contoursDepthObjects, contoursHand, objectSize);
// build list of hand rectangles
HandAreas = ProcessHandContours(bgrImage, contoursHand, contoursDepthObjects, handSize);
値objectSize
とhandSize
オブジェクトの最小限度を定義します。
これまでのところすべてうまくいきましたが、ディスプレイ上の形が見えます。 2つの一致が合致すれば、合併する。
しかし、私の手(HandAreas
)が定義された領域でオブジェクト(DangerAreas
)に触れると、ソフトウェアの通知が必要になります。私はMatchShapes
で問題解決しようとした
:
contoursDepthObjects.MatchShapes(contoursDepthObjects[0], contoursHand[0], Emgu.CV.CvEnum.MATCH_CONTOUR_TREE_METHOD.CONTOUR_TREES_MATCH_I1, 2);
が、この形式MatchShapes
では、エラーのため、受け付けられません。したがって、2つの質問:私の手が危険領域に触れるときこれを検出する正しい方法ですか?はいの場合、方法の正しい取り扱いはどうですか?MatchShapes
?
私はソースコードを少し「翻訳」することができました。 –