C ++:错误地加载了图像序列

时间:2018-05-06 02:30:30

标签: c++ visual-c++

我在文件夹中有数千张图片, 使用

创建
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获得正确的序列?

1 个答案:

答案 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