开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
Linux
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
OpenCV
问题(Question):
我想要做出判断一个资料夹里面有多少张ABC%d.bmp的图
然后再拿最后一张图来做辨识
因此我想到的方法是用while配合fopen来rb找到最后一张
再用opencv来imread
但是目前情况是
1.辨识到第43张图时就会发生test和train档案大小不符
(应该是开到ABC%d+1.bmp空档去了)
2.只要我在程式后面加上fclose,进行辨识时就会发生
Caught SIGSEGV accessing address (nil)
Spinning. Please run 'gdb gst-launch 1321' to continue debugging, Ctrl-C to
quit, or Ctrl-\ to dump core.
困扰蛮久的,一直没办法找到好的方法解决,
麻烦大家帮忙看看了!谢谢!
程式码(SourceCode):
int count = 0;
char iconpath[200];
FILE *fp;
sprintf(iconpath,"/var/ABC%d.bmp",count);
fp=fopen(iconpath,"rb");
while(fp){
count++;
sprintf(iconpath,"/var/ABC%d.bmp",count);
fp=fopen(iconpath,"rb");
}
sprintf(iconpath,"/var/ABC%d.bmp",count-1);
Mat img = imread(iconpath, CV_LOAD_IMAGE_GRAYSCALE);
memset(iconpath,0x00,200);
int predicted_label = -1;
double predicted_confidence = 0.0;
model->predict(img, predicted_label, predicted_confidence);
*label=predicted_label;
*conf=predicted_confidence;
fclose(fp);