Hik*_*ari 0 c++ opencv vector char
我具有此功能,用于读取目录中的照片:
vector<Mat> vImg;
Mat rImg;
DIR *dir;
struct dirent *file;
int count = 0;
std::vector<char*> arr;
if(argc >= 2){
char* imgFolder = argv[1];
if ((dir = opendir(imgFolder)) != NULL) {
while ((file = readdir(dir)) != NULL) {
std::string fn = file->d_name;
std::string ext = StringToUpper(fn.substr(fn.find_last_of(".") + 1));
if(ext == "JPG" || ext == "PNG" || ext == "JPEG") {
count += 1;
char* itm = new char[100];
strcat(itm, imgFolder);
strcat(itm, "/");
strcat(itm, file->d_name);
printf("%s\n",itm);
vImg.push_back(imread(itm));
}
}
closedir (dir);
Run Code Online (Sandbox Code Playgroud)
问题是第一次
vImg.push_back(imread(itm));
Run Code Online (Sandbox Code Playgroud)
所有其他“ itm”都是这样弄脏的:

有人可以帮助我吗?谢谢!:)
您的错误在这里:
char* itm = new char[100];
strcat(itm, imgFolder); // <-- oops
Run Code Online (Sandbox Code Playgroud)
首先strcat应该是strcpy。否则,您将追加到未初始化的内存中。
此外,您永远不会char在任何地方删除该阵列。
| 归档时间: |
|
| 查看次数: |
166 次 |
| 最近记录: |