我正在尝试从文件夹加载图像,而我正在使用C,OpenCV,VC ++ 2008 Express Edition。我的图像位于桌面上,具有不同的名称,如Tom.jpg,Flash.jpeg等。 我想在我的程序中加载此文件夹中的图像,并一次一个地对图像进行一些实验,并将此实验的结果保存在.txt文件中,并且.txt文件的名称应与.txt文件的名称相同。 .jpeg文件。如在Tom.jpg上执行的实验数据应存储在Tom.txt中,Flash.jpg应存储在Flash.txt等中。
我可以为一个图像执行上述步骤(将图像加载到文本文件中并将其存储在文本文件中)。从我手动创建的文本文件中读取文件名后,我可以一个接一个地显示10个图像。但在这种情况下,不同图片的所有数据都存储在同一文本文件中,我无法区分不同的数据集。
任何人都可以建议一种方法从文件夹中加载一个图像,然后进行必要的实验并将数据存储在不同的.txt文件中并为1000张图像做同样的事情吗?
答案 0 :(得分:0)
我希望你至少为主要处理创建了一个功能。如果你不这样做。然后,只需将图像列表作为参数传递给可执行文件,然后使用for循环
int main(int argc, char **argv) {
for (int i = 1; i < argc; ++i) {
const char* imageName = argv[i];
process(imageName);
}
return EXIT_SUCCESS;
}
答案 1 :(得分:0)
这是我最终使用的代码:
http://msdn.microsoft.com/en-us/library/windows/desktop/aa365200(v=vs.85).aspx
我做了一些修改。我通过了两个论点。我选择在同一个excel表中保存不同图像的数据,但这次我能够区分不同的数据集。首先是图像文件名,然后是数据
argv [1]是所有图像所在的目录 argv [2]是我想要的代码文件扩展名(在我的例子中是jpg)
// 用于扫描jpeg图像的文件夹
StringCchCopy(szDir, MAX_PATH, argv[1]);
StringCchCat(szDir, MAX_PATH, TEXT("\\*."));
StringCchCat(szDir, MAX_PATH, argv[2]);
hFind = FindFirstFile(szDir, &ffd);
do
{
//Loading the file from the folder and doing processing on it
}
while (FindNextFile(hFind, &ffd) != 0);