开发者社区> 问答> 正文

vs2015 中opencv报错,错误问题详见内容。 <?报错

我是准备使用opencv来做角点检测,代码如下

 #include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;

void main() {
    int maxCorners = 10;
    if (maxCorners < 1) {
        maxCorners = 1;
    }
    /// Parameters for Shi-Tomasi algorithm 
    Mat srcImg = imread("C:/Users/lenovo/Desktop/校正图片.jpg");
    imshow("原始图", srcImg);
    Mat srcGray;
    //转化为灰度图
    cvtColor(srcImg, srcGray, CV_BGR2GRAY);
    vector<Point2f> corners;
    double qualityLevel = 0.01;
    double minDistance = 10;
    int blockSize = 9;
    bool useHarrisDetector = false;
    Mat temp = Mat();
    double k = 0.04;
    /// 查找角点 
    goodFeaturesToTrack(srcGray,
        corners,
        maxCorners,
        qualityLevel,
        minDistance,
        temp,
        blockSize,
        useHarrisDetector,
        k);
    /// 标出检测到的角点
    for (int i = 0; i < corners.size(); i++) {
        circle(srcImg, corners[i], 4, Scalar(0, 255, 0), 2, 8, 0);
        printf("第%d个点坐标为:(%d,%d)\n",i,(int)corners[i].x,(int)corners[i].y);
    }

    /// 显示图片
    imshow("角点检测", srcImg);
    imwrite("C:/Users/lenovo/Desktop/检测图片.jpg",srcImg);
    waitKey(0);
    return;
}

然后遇到的问题是,代码一直运行到waitKey(0)都是正确的,显示如图
图片说明

但是当我点击任意按钮时,系统就报错了,具体报错如图:

图片说明

希望大神能够帮帮忙,谢谢啊。

展开
收起
爱吃鱼的程序员 2020-06-23 00:21:58 442 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    调试看下报错的代码行,然后找其中变量指针是否越界

    看上去是程序最后结束的时候有问题。是不是有越界。

    我今天调试的时候也有这个问题,尝试以后大概是因为不能用“CV_BGR2GRAY”转图像格式,换成cv::COLOR_BGR2GRAY可正常运行

    2020-06-23 00:22:14
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
JCLI使用说明文档 立即下载
Flash Player最新安全特性分析 及绕过思路 立即下载
Flash Player最新安全特性分析及绕过思路 立即下载