2017-03-07 55 views
1

我试图从图像中提取HOG描述符,但总是得到零作为结果。它如何解决。这里是我用来提取HOG描述符的C#代码。EmguCV HOG描述符始终为零

private void btnGetHOGDescriptor_Click(object sender, EventArgs e) 
{ 
    if(InputImage.Original != null) 
    { 
     Image<Bgr, Byte> inputImage = new Image<Bgr, Byte>(new Bitmap(pbInputImage.Image)); 
     float[] descriptor = GetVector(inputImage); 

     rtbDescriptor.Text = string.Join(" ", descriptor); 
    } 
} 

public float[] GetVector(Image<Bgr, Byte> img) 
{ 
    HOGDescriptor hog = new HOGDescriptor(); // with defaults values 
    Point[] p = new Point[img.Width * img.Height]; 
    int k = 0; 
    for (int i = 0; i < img.Width; i++) 
    { 
     for (int j = 0; j < img.Height; j++) 
     { 
      Point p1 = new Point(i, j); 
      p[k++] = p1; 
     } 
    } 

    return hog.Compute(img, new Size(8, 8), new Size(0, 0), p); 
} 

回答

0

如果你改变你GetVector到:

public float[] GetVector(Image<Bgr, Byte> img) 
     { 
      HOGDescriptor hog = new HOGDescriptor(); // with defaults values 

      return hog.Compute(img, new Size(8, 8), new Size(0, 0), null); 
     } 
+0

谢谢。代码在项目属性中启用“本地代码调试”后工作。 –