opencvSIFI算法detector->detect报错

问题遇到的现象和发生背景
尝试SIFT算法的使用,经历了漫长的opencv340拓展库的配置后,在代码复现的地方还是出现了问题,卡了几天了,希望能得到大佬们的帮助,感谢大家。
用代码块功能插入代码,请勿粘贴截图
#include 
#include 
#include 
#include 

using namespace std;
using namespace cv;
using namespace cv::xfeatures2d;

int main(int argc, char** argv)
{
    Mat src = imread("D:/1.Zhou/5.Dailywork/lena.png",IMREAD_GRAYSCALE);
    imshow("src", src);
    int numfeature = 400;
    Ptrdetector = SIFT::create(numfeature);//与SURF一样,剩余的取默认值
    vectorkeypoints;
    detector->detect(src, keypoints, Mat());
    Mat resultImg;
    drawKeypoints(src, keypoints, resultImg, Scalar::all(-1), DrawMatchesFlags::DEFAULT);
    imshow("SIFT keypoint", resultImg);
    waitKey();
    return 0;
}
运行结果及报错内容

0x00007FFCA2064B59 处(位于 SIFT_test.exe 中)引发的异常: Microsoft C++ 异常: ipp::IwException,位于内存位置 0x000000DED68FF834 处。

img

以及
无可用源

img

你这是编译的时候勾选了ipp之类的东西吗还是什么?一般只要nonefree勾上,各种test,example都不要,ipp一般也不选,除非你需要一些cpu加速的东西。
opeencv4.5.0下面可以运行,你是是看下,估计是头文件什么的不对,你这个头文件缺少,并且代码格式不对,乱掉了


#include <iostream>
#include <opencv2/opencv.hpp>

using namespace std;
using namespace cv;

int main(int argc, char** argv)
{
    Mat src = imread("1.bmp", IMREAD_GRAYSCALE);
    imshow("src", src);
    int numfeature = 400;
    Ptr<SIFT> detector = SIFT::create(numfeature);//与SURF一样,剩余的取默认值
    vector<KeyPoint> keypoints;
    detector->detect(src, keypoints, Mat());
    Mat resultImg;
    drawKeypoints(src, keypoints, resultImg, Scalar::all(-1), DrawMatchesFlags::DEFAULT);
    imshow("SIFT keypoint", resultImg);
    waitKey();
    return 0;
}