我在文件夹中有数千张图片, 使用
创建file << output << counter << ".jpg";
counter++;
smtg1
smtg2
。
。
。
smtg100
现在,使用这一行,我得到了
for (size_t i = 0; i < count; i++)
pic = imread(fn[i], CV_LOAD_IMAGE_COLOR);
smtg1
smtg10
smtg100
。
。
smtg109
smtg11
smtg110
它似乎需要基于第一个整数的图像,因此图像序列是错误的 如果我做错了什么,有人能指出我的错吗? 这样我就可以从1-1000获得正确的序列?
答案 0 :(得分:0)
考虑使用cv::videoCapture
。
您可以指定文件名的模板字符串,例如".\\some\\folder\\smtg%d.jpg"
,videoCapture
将以正确的数字顺序为您读取帧。
(未经测试)代码,用于演示基本用法:
cv::VideoCapture images(".\\some\\folder\\smtg%d.jpg");
cv::Mat image;
while(true)
{
images >> image;
if (image.empty()) break;
// do your processing...
}
有关格式说明符在模板字符串中的工作方式的详细信息,您必须阅读printf family of functions。