z_x_1996
X_XZhang
2017-03-07 12:59

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

5
  • vs2015
  • opencv3.1.0

我是准备使用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)都是正确的,显示如图
图片说明

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

图片说明

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

  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

3条回答

为你推荐

换一换