视觉C++:图像序列加载错误

visual C++ : Image sequence wrongly loaded

本文关键字:加载 错误 图像序列 C++ 视觉      更新时间:2023-10-16

我在一个文件夹中有数千张图像, 创建使用

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

考虑使用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 系列函数。