【问题标题】:How to monitor a directory and read image in this directory in C++如何在 C++ 中监视一个目录并读取该目录中的图像
【发布时间】:2015-04-22 21:01:26
【问题描述】:

首先,我是 C++ 新手。我正在使用 Visual Studio 2010。我参与了一个包含相机的项目。相机将图像(位图)发送到我计算机中的特定文件夹位置。我想一致地监视目录。当在目录中获得一个新的位图图像时,我想处理这个图像。我要使用的代码始终监视目录并读取此目录中的最后一个位图图像。我可以用什么来实现它?你有什么建议?能写出源代码吗?感谢您的关注。

【问题讨论】:

  • 你能告诉我们你的尝试吗?
  • 我正在使用以下代码处理图像: frame = cvLoadImage("test17.bmp",CV_LOAD_IMAGE_GRAYSCALE);然而;我不想通过输入图像名称来读取图像。我想监视一个目录,当一个图像被添加到目录时,我想读取这个图像。它是否有助于您理解我尝试做的事情?
  • 我认为它可能与这个问题重复:stackoverflow.com/questions/61253/… 和这个问题:stackoverflow.com/questions/931093/…

标签: c++ image image-processing imread


【解决方案1】:

Windows ReadDirectoryChangesW API 可用于监视目录中添加的文件。但是,它非常先进,如果您不熟悉 C++ 和 Windows 编程,它可能超出您的能力范围。您将需要一些有经验的帮助。

【讨论】:

    【解决方案2】:

    我不同意回答问题的其他人的观点,可以使用我在下面使用的一些共存库轻松完成,此代码可以满足您的需求,

    string processName()
    {
    
       FILETIME bestDate = { 0, 0 };
       FILETIME curDate;
       string name;
       CFileFind finder;
    
    
       BOOL bWorking = finder.FindFile("*.png");
    
       while (bWorking)
       {
    
          bWorking = finder.FindNextFile();
    
         // date = (((ULONGLONG) finder.GetCreationTime(ft).dwHighDateTime) << 32) + finder.GetCreationTime(ft).dwLowDateTime;
    
          finder.GetCreationTime(&curDate);
    
          if (CompareFileTime(&curDate, &bestDate) > 0 )
          {
              bestDate = curDate;
              name = finder.GetFileName().GetString();
              // name = (LPCTSTR) finder.GetFileName();
          }
    
    
    
       }
       return name;
    }
    

    这里是我为你写的代码,它取最后输入的 /.png 扩展名的名称,你可以在 libray 中查看它。

    请告诉我更多问题

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-28
      • 1970-01-01
      • 2014-10-24
      • 2015-10-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多