2014-12-18 5 views
0

저는 Kinect 센서와 Emgu CV로 프로젝트를 진행하고 있습니다. 나는 탐지 된 사람을 직사각형으로 가져 가서 더 작은 조각들로 나눕니다. Emg CV의 HoG fuction에 각 조각을 보내고 각 조각에 대한 결과로 float 배열을 기다리고 있습니다.돼지 디스크립터 emgu cv

문제는 이미지를 내 HoG 기능으로 보내면 프로그램이 Compute 메소드에서 경고/예외없이 종료됩니다.

내 돼지 기능은 다음과 같습니다

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 그러나 그것의 종료와 덤프를 잡으려고 시도 : (Taking the HOG descriptor of an image using HOGDescriptor from EMGU CV C#에서 촬영).

답변

0

직접 문제를 발견했습니다.

p 배열을 계산 함수로 보내려고하면 오류가 발생합니다.

대신 []

 float[] result = hog.Compute(imageOfInterest, new System.Drawing.Size(16, 16), new System.Drawing.Size(0, 0), NULL ARRAY HERE); 
P의 널 어레이를 전송하여이를 해결