1

我正在尝试一次处理许多图片,然后使所有图片大小相等

Mat pic = imread ("C:\\Pick");
for (int i=0;i<10;i++)
{
 imshow("mainwin" , pick);
 resize (pick,re_pic,size(150,100));
}

Pick是一个包含10张不同图片的文件夹

4

1 回答 1

2

您可以获取目录中的图像列表,然后对其进行处理。

    #include <vector>
    #include <stdio.h>
    #include <windows.h>
    #include <iostream>
    #include <string>

        using namespace std;
        //----------------------------------------------------------------------
        // Get list of files 
        // Usage:
        //  string ImagesDir=tmp+"C:\\Images\\*.jpg";
        //  vector<string> files=listFilesInDirectory(ImagesDir); 
        //----------------------------------------------------------------------
        vector<string> listFilesInDirectory(string directoryName)
        {
            WIN32_FIND_DATA FindFileData;
            HANDLE hFind = FindFirstFile(directoryName.c_str(), &FindFileData);

            vector<string> listFileNames;
            listFileNames.push_back(FindFileData.cFileName);

            while (FindNextFile(hFind, &FindFileData))
                listFileNames.push_back(FindFileData.cFileName);

            return listFileNames;
        }
...
// somewhere in main
string YourImagesDirectory="C:\\Pick\\";
vector<string> files=listFilesInDirectory(YourImagesDirectory+"*.jpg"); 
for(int i=0;i<files.size();i++)
    {
         Mat img=imread(YourImagesDirectory+files[i]);
         imshow("mainwin" , img);
         ...
    }
...
于 2013-08-01T16:30:08.497 回答