猪描述符 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 捕获转储,但是当我的程序崩溃时,它退出而没有捕获任何东西。
我自己发现了问题。
如果您尝试将 p 数组发送到计算函数,它会出错。
您可以通过发送空数组而不是 p[] 来解决此问题
float[] result = hog.Compute(imageOfInterest, new System.Drawing.Size(16, 16), new System.Drawing.Size(0, 0), NULL ARRAY HERE);