猪的描述符emgu cv

时间:2014-12-18 14:34:49

标签: c# wpf kinect emgucv

我正在使用Kinect Sensor和Emgu CV开展项目。 我将检测到的人变成一个矩形并将其分成小块。我将每件作品发送到Emgu CV的HoG功能中,我等待每个发送的作品的浮动数组。

问题是当我将图像发送到我的HoG函数时,程序在计算方法上退出而没有警告/异常。

My Hog功能是:(取自:Taking the HOG descriptor of an image using HOGDescriptor from EMGU CV C#

    public Image<Bgr, Byte> Resize(Image<Bgr, Byte> im)
    {
        return im.Resize(64, 128, Emgu.CV.CvEnum.INTER.CV_INTER_LINEAR);
    }
    public float[] GetVector(Image<Bgr, Byte> im)
    {
        HOGDescriptor hog = new HOGDescriptor();    // with defaults values
        Image<Bgr, Byte> imageOfInterest = Resize(im);
        System.Drawing.Point[] p = new System.Drawing.Point[imageOfInterest.Width * imageOfInterest.Height];
        int k = 0;
        for (int i = 0; i < imageOfInterest.Width; i++)
        {
            for (int j = 0; j < imageOfInterest.Height; j++)
            {
                System.Drawing.Point p1 = new System.Drawing.Point(i, j);
                p[k++] = p1;
            }
        }
        float[] result = hog.Compute(imageOfInterest, new System.Drawing.Size(16, 16), new System.Drawing.Size(0, 0), p);
        return result;
    }

我尝试使用Procdump捕获转储,但是当程序崩溃时它会退出而不会捕获任何内容。

1 个答案:

答案 0 :(得分:0)

我自己发现了这个问题。

如果您尝试将p数组发送到Compute函数,则会出错。

您可以通过发送空数组而不是p []

来解决此问题
        float[] result = hog.Compute(imageOfInterest, new System.Drawing.Size(16, 16), new System.Drawing.Size(0, 0), NULL ARRAY HERE);