我正在使用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捕获转储,但是当程序崩溃时它会退出而不会捕获任何内容。
答案 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);