[英]Access violation reading location 0xFFFFFFFFFFFFFFFF when using FAST feature detector in OpenCV
我是opencv的初學者,並且正在opencv中使用FAST功能檢測器來簡單地獲取圖像的關鍵點。
#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 = {size = 658812287755660302})這是不可能的。 但是會生成表示正確關鍵點的圖像。 上面提到的訪問沖突錯誤消息出現在調試結束時。
在發布模式下:代碼首先運行良好,在圖像中顯示了關鍵點。 最后,當關閉圖像窗口時,程序崩潰。 調試時,kp具有合理的大小(kp = {size = 427})。
當代碼在調試模式下運行而不進行調試時,會彈出一個應用程序錯誤,指出無法讀取0xffffffff處的內存。
調用堆棧是如圖所示這里 ,這沒有任何意義,我。
我究竟做錯了什么? 它與初始化向量或其他方式有關嗎?
我無法使用我自己的圖像或使用您提供的圖像來重現此問題。 因此,我必須得出結論,您的構建環境存在問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.