我有一些带有某些关键字的文件(一个是MAT1)。 对于这个关键词,我想读取与之对应的ID,将其与文件名一起放入数组中。 我尝试了以下(我对bash编程不是很熟悉):
Ptr<MSER> ms = MSER::create();
vector<Rect> bbox,filtered;
vector<vector<Point> > regions;
vector <int> vec;
ms->detectRegions(gray,regions,bbox);
cout<<bbox.size()<<"Befor Delete"<<endl;
for (int i = 0; i<bbox.size(); i++){
for(int j = 0; j<bbox.size(); j++){
if( (bbox[i].x > bbox[j].x) && (bbox[i].y > bbox[j].y) && ((bbox[i].x+bbox[i].width) < (bbox[j].x+bbox[j].width)) && ((bbox[i].y+bbox[i].height) < (bbox[j].y+bbox[j].height)) && (bbox[i].area() < bbox[j].area())){
bbox.erase(bbox.begin() + i );
}
}
}
cout<<bbox.size()<<" After"<<endl;
for (int k = 0; k < bbox.size(); k++)
{
rectangle(src,bbox[k], CV_RGB(0, 255, 0));
//cout<<k<<endl;
}
imshow("mser", src);
imwrite("NoN.jpg",src);
用这个得到消息
make_mat_list.bsh:第21行:out [0]:找不到命令
make_mat_list.bsh:第21行:out [1]:找不到命令
这里有什么问题?
答案 0 :(得分:2)
bash
对空白区域敏感,下面的行不能有空格。
out[$num] = "${array[index+1]} $file "
对于错误的原因,shell将该特定行视为第一个单词,即命令out[$num]
,即out[1]
等等,其余部分作为参数{{1} }和=
,这没有任何意义。删除空格并执行jsut
"${array[index+1]} $file "