Opencv SiftFeatureDetector。是否检测到功能已损坏?
我一直在尝试从在线资源中筛选/浏览,并想自己测试一下 我第一次尝试在没有非免费库的情况下使用以下代码:Opencv SiftFeatureDetector。是否检测到功能已损坏?,opencv,sift,feature-detection,surf,Opencv,Sift,Feature Detection,Surf,我一直在尝试从在线资源中筛选/浏览,并想自己测试一下 我第一次尝试在没有非免费库的情况下使用以下代码: int _tmain(int argc, _TCHAR* argv[]) { Mat img = imread("c:\\car.jpg", 0); Ptr<FeatureDetector> feature_detector = FeatureDetector::create("SIFT"); vector<KeyPoint> keypoints; feature_d
int _tmain(int argc, _TCHAR* argv[])
{
Mat img = imread("c:\\car.jpg", 0);
Ptr<FeatureDetector> feature_detector = FeatureDetector::create("SIFT");
vector<KeyPoint> keypoints;
feature_detector->detect(img, keypoints);
Mat output;
drawKeypoints(img, keypoints, output, Scalar(255, 0, 0));
namedWindow("meh", CV_WINDOW_AUTOSIZE);
imshow("meh", output);
waitKey(0);
return 0;
int main(int argc, char** argv)
{
const Mat input = cv::imread("/tmp/image.jpg", 0); //Load as grayscale
SiftFeatureDetector detector;
vector<KeyPoint> keypoints;
detector.detect(input, keypoints);
// Add results to image and save.
Mat output;
drawKeypoints(input, keypoints, output);
imwrite("/tmp/SIFT_RESULT.jpg", output);
return 0;
}
再次编译时不会出现错误,但运行时会在此步骤中断:detector.detect(输入,关键点)代码>
我找不到原因。谁能帮我一下吗
多谢各位
编辑:这是我在它中断时得到的错误:
SIFT.exe中0x007f0900处的未处理异常:0xC0000005:访问冲突读取位置0x00000000
<我的设置:微软Visual C++ 2010,OpenCV2.4.2,WindowsXP。全部的
添加和链接的库
使用彩色图像而不是灰度,这样对我很有用。
如果彩色图像也无法工作,您也可以尝试跳过“const”
const Mat input = cv::imread("/tmp/image.jpg");
使用彩色图像而不是灰度,这样对我很有用。
如果彩色图像也无法工作,您也可以尝试跳过“const”
const Mat input = cv::imread("/tmp/image.jpg");
如果你更具体地说明它是如何“断裂”的,人们就更有可能帮助你。你会犯什么样的错误?是否正在抛出断言?等等。谢谢,添加了详细信息。这是您所说的必需错误吗?听起来图像可能无法正确读取。在调用detect()
之前,请确保您的图像数据不为NULL
,谢谢,我以前也尝试过,我用以下命令编辑了imshow:imshow(“meh”,img)代码>并且当我运行它时(在注释了有问题的行之后),它会正确地显示图像。我想我还应该注意,当我一步一步地调试,并在出错之前检查关键点的值时,它有两个参数;大小和容量:两者的值均为0。如果你更具体地说明它是如何“断裂”的,人们更有可能帮助你。你会犯什么样的错误?是否正在抛出断言?等等。谢谢,添加了详细信息。这是您所说的必需错误吗?听起来图像可能无法正确读取。在调用detect()
之前,请确保您的图像数据不为NULL
,谢谢,我以前也尝试过,我用以下命令编辑了imshow:imshow(“meh”,img)代码>并且当我运行它时(在注释了有问题的行之后),它会正确地显示图像。我想我还应该注意,当我一步一步地调试,并在出错之前检查关键点的值时,它有两个参数;大小和容量:两者的值均为0