使用emgucv加载图像时出现Nullreference异常?

时间:2014-03-04 14:16:41

标签: c# .net opencv emgucv knn

我正在尝试使用KNN算法加载用于训练的图像集。每次,当我尝试加载图像时,都会发生NullReferenceException。 我使用OpenCV和EmguCV(.net Wrapper)。我已经用图像数据集附加了项目的源代码。 training文件夹包含图像。 链接到项目:http://goo.gl/z5dVLX 我该怎么做才能让它发挥作用?

public void getData()
{
    CvMat row = new CvMat();
    CvMat data = new CvMat();
    string file;
    int i = 7, j = 0;
    for (i = 0; i < classes; i++)
    {
        for (j = 0; j < train_samples; j++)
        {
            if (j < 10)
                file = file_path + i.ToString() + "\\" + i.ToString() + "0" + j.ToString() + ".pbm";
            else
                file = file_path + i.ToString() + "\\" + i.ToString() + j.ToString() + ".pbm";

            form.WriteLine("Training..." + file,true,true);

            // Exception occurs here
            src_image = highgui.CvLoadImage(file, highgui.CV_LOAD_IMAGE_GRAYSCALE);

            if (src_image.ptr == null)
            {
                form.WriteLine("Error: Cant load image: " + file + "\n", true, true);
            }

            // ...
        }
    }
}

我得到以下异常:

  

未处理的类型异常   'System.NullReferenceException'发生在cvlibcs​​.dll

中      

附加   information:对象引用未设置为对象的实例。   .... \培训\ .... \培训\ 0 \ 000.pbm

1 个答案:

答案 0 :(得分:0)

cvlibcs​​.dll?您尝试使用哪个版本的EmguCV?在EmguCV中没有cvlibcs​​.dll ...

你应该去Emgu网站并按照一些教程进行操作,用Emgu重新映射图像更像是这样:

Image<Bgr, Byte> img1 = new Image<Bgr, Byte>("MyImage.jpg");