我正在使用c#中的Emgu CV
进行人脸检测。这是一个Windows窗体应用程序WFP
。代码没有任何编译错误,但没有检测到图像中的任何面,并且Null reference exception
函数在运行时抛出DetectHaarCascade
时间。
以下是代码段
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog open = new OpenFileDialog();
if (open.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
Image img = Image.FromFile(open.FileName);
pictureBox1.Image = img;
Image<Bgr, byte> ImageFrame = new Image<Bgr, byte>(new Bitmap(img));
pictureBox1.Image = ImageFrame.ToBitmap();
if (ImageFrame != null)
{
Image<Gray, byte> grayframe = ImageFrame.Convert<Gray, byte>();
try
{
MCvAvgComp[][] faces = grayframe.DetectHaarCascade(haar, 1.4, 4, HAAR_DETECTION_TYPE.DO_CANNY_PRUNING, new Size(ImageFrame.Width / 8, ImageFrame.Height / 8));
foreach (MCvAvgComp face in faces[0])
{
ImageFrame.Draw(face.rect, new Bgr(Color.Green), 3);
}
我还添加了Emgu dll文件所需的所有引用,并且还将所有openCV dll文件添加到项目的debug文件夹中。
我正在使用visual studio 2010
和
Emgu CV 2.4
。
提前谢谢。