Online Multi-Person Tracking 文章源码中 关于在 Windows 操作系统下 基于OpenCV 的图像序列读取方法(代码 )

来源:互联网 发布:p站搜图软件 编辑:程序博客网 时间:2024/05/01 00:20


Online Multi-Person Tracking 文章源码中 在Windows 操作系统下 基于OpenCV的图像序列读取方法(代码)


第一部分

char tmpDirSpec[MAX_PATH+1];sprintf_s(tmpDirSpec, "%s*", _directory.c_str());#if OS_type==2 // for windowsWIN32_FIND_DATAA f;HANDLE h = FindFirstFileA(tmpDirSpec , &f); // read .   寻找目录下的第一个文件  返回给 f if(h != INVALID_HANDLE_VALUE){FindNextFileA(h, &f);//read ..while(FindNextFileA(h, &f))_m_fileNames.push_back(f.cFileName);}FindClose(h);


其中数据结构解释 


vector<string>_m_fileNames;


_directory 为图像序列路径,作为参数输入 (注意路径下划线的使用 路径最后必须加下划线 例:C:\View_001\  C:/View_001/) 在文章源码中左右下划线都可(别的项目不能确定)在路径末尾必须加下划线


WIN32_FIND_DATAA  在用findfirst()和findnext()函数去查找磁盘文件时经常使用的一个数据结构WIN32_FIND_DATA的成员变量里包含了以上所有的文件属性,因此可以通过这个结构作为获取或更改文件属性的手段 


HANDLE(句柄) 是Windows操作系统中的一个概念。在Windows程序中,有各种各样的资源(窗口、图标、光标等),系统在创建这些资源时会为它们分配内存,并返回标示这些资源的标示号 


代码表示在目标路径 tmpDirSpec中寻找到第一个文件,并将文件的各种属性存储在实例化的数据结构 WIN32_FIND_DATAA   f中,当句柄h不是空值时,循环输入,将所有文件的名字 存储在 字符向量 _m_fileNames 中(此时已经将所有的文件按名字存储进了该字符向量中) 以备下面 readImg()函数 循环读入文件使用 



第二部分

void ImageDataReader::readImg(Mat& frame)      //  将图像读入 frame 中  {frame.data=NULL;if (_file_counter>=_m_fileNames.size())return;frame=imread(_directory+_m_fileNames[_file_counter]);_file_counter++;}


循环读图像序列函数 



 注意:

 路径作为参数输入下划线的使用-路径最后必须加下划线  例:C:\View_001\   C:/View_001/  在文章源码中左右下划线测试都可  (别的项目不能确定)  



 

阅读全文
0 0
原创粉丝点击