我想執行一個非常簡單的任務,但不能由於我無法弄清的錯誤。我想用下面這段代碼打印矢量的內容
Ptr<FeatureDetector> feature_detector = FeatureDetector::create("SIFT");
vector<KeyPoint> keypoints;
feature_detector->detect(img, keypoints);
for(unsigned int i = 0; i < keypoints.size(); i++)
{
ofstream outf("vector.txt", ios::app);
outf<<"value at "<< i << " = " << keypoints.at<KeyPoint>(i)<<endl;
}
保存的檢測到的向量到一個txt文件特徵的內容,但我看到下面的錯誤:
std::vector<_Ty>::at': function call missing argument list; use '&std::vector<_Ty>::at' to create a pointer to member
我檢查我的語法並找不到任何錯誤。
編輯:這個我想打印出一個矩陣的內容和格式完全爲它工作之前,這裏是我用來打印矩陣的內容的代碼:
for(int x = 0;x < dst.rows ; x++)
{
for(int y = 0; y < dst.cols; y++)
{
ofstream outf("Sample.txt", ios::app);
outf<<"value at "<< x << " " << y << " = " << dst.at<float>(x,y)<<endl;
}
}
在哪裏DST是由浮點數據類型的矩陣
'keypoints.at(ⅰ)'應該簡單地成爲'keypoints.at(i)'。 –
jrok
謝謝,但我試過你的版本,仍然得到相同的錯誤。此外,我使用.at運算符閱讀該文件,建議指定正在使用的數據類型,這就是爲什麼我這樣寫的。還基於我剛添加的編輯。 – ipunished
你是否重載了'operator <<(std :: ostream&,const KeyPoint&)'?沒有這些,你將無法使用'outf << ...'語法。 – jogojapan