OpenCV+vs2015的简单问题

#include
#include
using namespace cv;
using namespace dnn;
using namespace std;
String model_file = "bvlc_googlenet .caffemodel";
String model_txtfile = "bvlc_googlenet.prototxt";
String labels_file = "synset_words.txt";
vectorreadLabels();

int main(int arc, char** argv) {
Mat src = imread("D:/messi5.jpg");
namedWindow("input", CV_WINDOW_AUTOSIZE);
imshow("input", src);

//读取模型的类别(文本)
vector<String> labels = readLabels();

//读取google_net的模型和描述文件
Net net = readNetFromCaffe(model_txtfile, model_file);
if (net.empty()) {
    printf("read caffee model data failure\n");
    return -1;
}
//将图像转为google_net网络输入的对象,由描述文件可知,图像尺寸统一为224*224
Mat inputBlob = blobFromImage(src, 1.0, Size(224, 224), Scalar(104, 117, 123));

//进行前向传播,由描述文件可知,第一层用了10个卷积层,提取图像10种不同的特征
Mat prob;
for (int i = 0; i < 10; i++) {
    net.setInput(inputBlob, "data");
    prob = net.forward("prob");//最后一层的输出为“prob”
}

//输出
//printf("m = %d,n = %d", prob.rows, prob.cols);//得到的概率值为1行1000列的
Point classLoc;
double classProb;
minMaxLoc(prob, NULL, &classProb, NULL, &classLoc);
printf("current image classification: %s,probablity %f\n", labels.at(classLoc.x).c_str(), classProb);
putText(src, labels.at(classLoc.x), Point(20, 20), FONT_HERSHEY_COMPLEX, 1.0, Scalar(0, 0, 255), 2);
imshow("output", src);
waitKey(0);
return 0;

}

//读取模型的类别(文本)
vectorreadLabels() {
vectorclassNames;
ifstream fp(labels_file);//打开文件
if (!fp.is_open()) {//文件没打开
printf("could not open the file ");
exit(-1);
}
string name;
while (!fp.eof()) {//文件没读到结尾
getline(fp, name);//得到每一行,放到name中
if (name.length()) {//非空行
classNames.push_back(name.substr(name.find(' ') + 1));//
}
}
fp.close();
return classNames;
}

我在vs2015上运行过这段代码,别人可以运行成功,但是我出现这个问题(“”)could not open the file。不知道什么问题

1个回答

文件存在吗?路径对吗?都对就不知道了

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问