當使用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