C ++: неправильно загружена последовательность изображений - PullRequest
0 голосов
/ 06 мая 2018

У меня есть тысячи изображений в папке, создан с использованием

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 голосов
/ 06 мая 2018

Рассмотрите возможность использования 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 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...