我正在尝试使用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
答案 0 :(得分:0)
cvlibcs.dll?您尝试使用哪个版本的EmguCV?在EmguCV中没有cvlibcs.dll ...
你应该去Emgu网站并按照一些教程进行操作,用Emgu重新映射图像更像是这样:
Image<Bgr, Byte> img1 = new Image<Bgr, Byte>("MyImage.jpg");