x64环境下,句柄也在变化,要用_int64 定义句柄,而不是long。
参考代码:
_int64 handle;
struct _finddata_t fileinfo;
int f = 1;
f=handle = _findfirst(inPath.c_str(), &fileinfo);
if (f == -1) {
return -1;
}
while (f!=-1)
{
std::cout << fileinfo.name << endl;
std::string imgname = "D:\\Project-opencv\\letters\\";
imgname = imgname + label + "\\" + fileinfo.name;
Mat src = imread(imgname.c_str(), 0);
if (src.empty()) {
std::cout << "can not load image" << std::endl;
}
cv::imshow("src", src);
for (int j = 0; j < imageRows*imageCols; j++) {
trainingData[i*imagesSum + k][j] = (float)src.data[j];
}
labels[i*imagesSum + k] = label;
k++;
f = _findnext(handle, &fileinfo);