Emgu.CV.Util.CvException: 'OpenCV: i <0' - PullRequest
0 голосов
/ 04 февраля 2019

Я новичок в разработке EmguCv и kinect v2.Я пытаюсь нарисовать контур руки, который был обнаружен на чистом сером изображении.И я сталкиваюсь с этим исключением, которое всегда возникает после строки кода:
CvInvoke.DrawContours (image, temp, -1, новый MCvScalar (255, 0, 0), толщина);

Вот моя функция для рисования контура:

private void drawOnEachHand (Hand whichHand, Image image) {

        int thickness = 2;

        //Console.WriteLine("Check2 " + (whichHand == null));
        if (whichHand != null)
        {
            VectorOfPoint temp = new VectorOfPoint(whichHand.ContourDepth.Count);
            List<Point> arrTemp = new List<Point>();

            for (int intCounter = 0; intCounter < whichHand.ContourDepth.Count; intCounter++)
            {
                int X = Convert.ToInt32(MathExtensions.ToPoint(whichHand.ContourDepth[intCounter]).X);
                int Y = Convert.ToInt32(MathExtensions.ToPoint(whichHand.ContourDepth[intCounter]).Y);
                arrTemp.Add(new Point(X, Y));
            }

            temp.Push(arrTemp.ToArray());

            CvInvoke.DrawContours(image, temp, -1, new MCvScalar(255, 0, 0), thickness);
            Console.WriteLine(image.Cols);
        }
    }

Это сообщение об исключении:

Возникло исключение: Emgu.CV.Util.CvException в Emgu.CV.World.dll
В Emgu произошло необработанное исключение типа Emgu.CV.Util.CvException..CV.World.dll
OpenCV: i <0 </p>

Я использую Visual Studio 2017, Emgu Cv 3.x и устанавливаю его с помощью слепка.Я не могу понять, что означает сообщение об исключении.

1 Ответ

0 голосов
/ 12 февраля 2019

Я не понимаю, что я делаю неправильно, но вместо использования CvInvoke.DrawContours () я использую Image.DrawPolyline для достижения своей цели.

Я использую:
image.DrawPolyline(points, false, new Gray, thickness);

...