gpt4 book ai didi

c++ - OpenCV--程序停止运行@图像关键点检测步骤

转载 作者:行者123 更新时间:2023-11-28 07:16:28 25 4
gpt4 key购买 nike

我正在尝试使用 opencv 库开发视觉词包的 C++ 实现

我从测试关键点检测功能开始,但是当我插入这条指令时

detector->detect(img, keypoints);,程序停止运行@第一个图像,没有抛出任何异常。

谁能帮我解决这个问题?

谢谢

void extractTrainingVocabulary(const path& basepath) {
for (directory_iterator iter = directory_iterator(basepath); iter
!= directory_iterator(); iter++) {
directory_entry entry = *iter;

if (is_directory(entry.path())) {

cout << "Processing directory " << entry.path().string() << endl;
extractTrainingVocabulary(entry.path());

} else {

path entryPath = entry.path();
if (entryPath.extension() == ".jpg") {

cout << "Processing file " << entryPath.string() << endl;

Mat img = imread(entryPath.string());
if (!img.empty())
{

cout << "not empty"<< endl;


try{
// ...
vector<KeyPoint> keypoints;
cout << "not empty"<< keypoints.empty()<<endl;
//detector->detect(img, keypoints);
} catch (const std::exception& ex) {
}



}
else
{
cout << " empty"<< endl;

}
}
}
}
}

最佳答案

假设该代码中的 detector->detect() 函数实际上没有在您的实现中被注释掉。我唯一的猜测是 img.empty() 函数没有返回正确的值。检查图像是否正确加载的 OpenCV 方法正在使用 image.data 数据成员,如下所示:

if(! image.data )  // Check for invalid input
{
cout << "Could not open or find the image" << std::endl ;
return -1;
}

关于c++ - OpenCV--程序停止运行@图像关键点检测步骤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20160527/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com