簡體   English   中英

在OpenCV中使用FAST功能檢測器時的訪問沖突讀取位置0xFFFFFFFFFFFFFFFFFF

[英]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處的內存。

調用堆棧是如圖所示這里 ,這沒有任何意義,我。

我究竟做錯了什么? 它與初始化向量或其他方式有關嗎?

我無法使用我自己的圖像或使用您提供的圖像來重現此問題。 因此,我必須得出結論,您的構建環境存在問題。

  • 確保已正確設置項目的包含庫和庫,包括默認情況下OpenCV使用的共享庫。
  • 確保您使用的是Visual Studio 2015(或二進制兼容的VS2017)來編譯代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM