猪描述符 emgu cv.

本文关键字:cv emgu 描述 | 更新日期: 2023-09-27 18:34:45

我正在与Kinect Sensor和Emgu CV合作一个项目。我把检测到的人分成一个矩形,把它分成更小的部分。我将每件作品发送到 Emgu CV 的 HoG 函数中,我正在等待每个发送件的结果浮点数组。

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

我的Hog函数是:(取自:使用EMGU CV C#中的HOGDescriptor获取图像的HOG描述符(

    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 捕获转储,但是当我的程序崩溃时,它退出而没有捕获任何东西。

猪描述符 emgu cv.

我自己发现了问题。

如果您尝试将 p 数组发送到计算函数,它会出错。

您可以通过发送空数组而不是 p[] 来解决此问题

        float[] result = hog.Compute(imageOfInterest, new System.Drawing.Size(16, 16), new System.Drawing.Size(0, 0), NULL ARRAY HERE);