当使用FAST特征检测器我用初学OpenCV的,并使用在OpenCV中的FAST特征检测器简单地得到一个图像的关键点阅读位置0xFFFFFFFFFFFFFFFF。访问冲突的OpenCV
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/features2d.hpp"
std::vector<cv::KeyPoint> kp;
int main()
{
cv::Mat img = cv::imread("im.jpg", 0);
cv::FAST(img, kp, 100, true);
cv::Mat img2;
cv::drawKeypoints(img, kp, img2 , CV_RGB(255, 0, 0));
cv::imshow("Display", img2);
cv::waitKey(0);
cv::destroyWindow("Display");
return 0;
}
但调试代码(调试模式)时: 我发现的矢量KP中(作为关键点矢量传递)到FAST()具有大尺寸(KP = {大小= 658812287755660302})这是不可能的。但是生成表示正确关键点的图像。上面提到的访问冲突错误信息出现在调试结束时。
在释放模式: 代码运行正常首先示出图像中的关键点。当图像窗口关闭时,程序崩溃。调试时,kp具有合理的大小(kp = {size = 427})。
当代码在调试模式下无需调试运行,应用程序错误弹出,说明内存在的0xffffffff无法读取。
调用堆栈是如图所示here,这没有任何意义,我。
我在做什么错?它与我初始化矢量或其他东西的方式有关吗?
哪里我们发现您使用的是测试,'im.jpg'的形象呢? – Xirema
我无法使用[此示例图像](http://imgur.com/a/2iV3q)与您的代码重现此问题。 [结果](http://imgur.com/a/MWkIw)。 – Xirema
检查您的链接器属性。您可以在发布中链接OpenCV调试库,反之亦然。或者你正在使用与不同的编译器/体系结构编译的OpenCV版本 – Miki