Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从文件夹加载图像(使用C、OpenCV、VisualStudio 2008)_C_Image_Visual Studio 2008_Visual C++_Opencv - Fatal编程技术网

从文件夹加载图像(使用C、OpenCV、VisualStudio 2008)

从文件夹加载图像(使用C、OpenCV、VisualStudio 2008),c,image,visual-studio-2008,visual-c++,opencv,C,Image,Visual Studio 2008,Visual C++,Opencv,我正在尝试从文件夹加载图像,我使用的是C、OpenCV、VC++2008 Express Edition。我的图像位于桌面上,有不同的名称,如Tom.jpg、Flash.jpeg等。 我想在我的程序中加载这个文件夹中的图像,每次对一个图像进行一些实验,并将实验结果保存在.txt文件中,.txt文件的名称应与.jpeg文件的名称相同。在Tom.jpg上执行的实验数据应存储在Tom.txt中,Flash.jpg应存储在Flash.txt等中 StringCchCopy(szDir, MAX_PATH

我正在尝试从文件夹加载图像,我使用的是C、OpenCV、VC++2008 Express Edition。我的图像位于桌面上,有不同的名称,如Tom.jpg、Flash.jpeg等。 我想在我的程序中加载这个文件夹中的图像,每次对一个图像进行一些实验,并将实验结果保存在.txt文件中,.txt文件的名称应与.jpeg文件的名称相同。在Tom.jpg上执行的实验数据应存储在Tom.txt中,Flash.jpg应存储在Flash.txt等中

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);
我可以为一个图像执行上述步骤(加载图像并将其数据存储在文本文件中)。从手动创建的文本文件中读取文件名后,我可以一个接一个地显示10个图像。但在这种情况下,不同图片的所有数据都存储在同一个文本文件中,我无法区分不同的数据集

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);

有谁能建议一种方法,一次从文件夹中加载一幅图像,并进行必要的实验,将数据存储在不同的.txt文件中,然后对1000幅图像执行相同的操作?

我希望您至少为主处理创建了一个函数。如果你不知道,就去做。然后,将图像列表作为参数传递给可执行文件,并使用for循环

int main(int argc, char **argv) {
   for (int i = 1; i < argc; ++i) {
      const char* imageName = argv[i];
      process(imageName);
   }
 return EXIT_SUCCESS;
}
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);
int main(int argc,char**argv){
对于(int i=1;i
以下是我最终使用的代码:

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);

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);
我做了一些修改。我对它提出了两个论点。我选择将不同图像的数据保存在同一张excel表格中,但这次我能够区分不同的数据集。首先是图像文件名,然后是其数据

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);
argv[1]是所有图像所在的目录 argv[2]是我希望在代码中使用的文件扩展名(在我的例子中是jpg)

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);
//用于扫描文件夹中的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);

仅供参考,如果您只想处理与特定模式匹配的所有文件(例如,
*.jpeg
),而不必在文本文件中手动指定所有文件,您还可以使用/枚举目录的内容。是的,您的想法很好。我能够扫描我的文件夹中的所有图像。谢谢雷米的建议。我没有使用我的图片列表。我用亚当的想法扫描整个文件夹中的图像