大家好!
我想在ubuntu系统下使用opencv遍历指定文件夹下的所有照片数目,在windows下程序正确,然而在ubuntu下得不到文件夹下照片数目.
```string path = "/home/trm/test/";
string exten = "*.jpeg";
std::vectorstd::string filenames = cv::Directory::GetListFiles(path, exten, false);
count = filenames.size();
核心程序如上:
#include
#include
#include
#include
#include
#include
#include
#include
#include
//#include
using namespace cv;
using namespace std;
int main()
{
cv::Directory dir;
/*string path = "C:\Users\Lenovo\Documents\C++study\cameravideo\cameravideo";
string exten = "*.jpg";
vector filenames = dir.GetListFiles(path, exten, false);*/
VideoCapture capture(0);
Mat frame;
if (!capture.isOpened())
{
cout << "摄像头打开失败!" << endl;
return -1;
}
char key;
char filename[200];
int count = 0;
namedWindow("【视频】", 1);
namedWindow("【图片】", 1);
cout<<file<<endl;
while (1)
{
key = waitKey(50);
capture >> frame;
imshow("【视频】", frame);
string path = "/home/trm/test/";
string exten = "*.jpeg";
std::vector<std::string> filenames = cv::Directory::GetListFiles(path, exten, false);
count = filenames.size();
cout<<"filenames:"<<filenames.size()<<endl;
//cout<<count<<endl;
//cout << count << endl;
if (key == 27)
break;//按ESC键退出程序
if (key == 32)//按空格键进行拍照
{
sprintf(filename, "/home/trm/test/Picture%d.jpeg", 3);
imwrite(filename, frame);//图片保存到本工程目录中
imshow("【图片】", frame);
}
}
return 0;
}
完整程序