OpenCV4.8在Debug模式下滚动条错误问题解决与原因查找

描述

 

错误是什么?

昨天有个在B站上学习我的《OpenCV C++快速入门30讲》视频课程的小伙伴跟我反馈说,P8对应OpenCV代码只要一拖动滚动条运行就卡死,白天我很忙就没时间,晚上跟他一起腾讯会议了一下,让他演示给我看了一下,发现的确是这样,错误显示如下:

DEBUG

问题解决与原因查找

  于是我在自己机器上运行同样的代码却没有问题,程序没有崩溃,最后对齐了他跟我的版本信息如下:

OpenCV4.8
VS2017
唯一不同的是他在Debug模式下执行的而我在Release模式下执行的。而我是可以随意拖动滚动条的,图示如下: 于是我让他切换到Release模式下,然后重新配置执行相同代码发现一切正常了,问题虽然解决了,但是OpenCV4.8在Debug模式下什么原因导致的崩溃,我还是找不到真正的原因。分享出来让大家一起帮忙,相关的代码如下:
static void on_lightness(int b, void* userdata) {
    Mat image = *((Mat*)userdata);
    Mat dst = Mat::zeros(image.size(), image.type());
    Mat m = Mat::zeros(image.size(), image.type());
    addWeighted(image, 1.0, m, 0, b, dst);
    imshow("亮度与对比度调整", dst);
}

static void on_contrast(int b, void* userdata) {
    Mat image = *((Mat*)userdata);
    Mat dst = Mat::zeros(image.size(), image.type());
    Mat m = Mat::zeros(image.size(), image.type());
    double contrast = b / 100.0;
    addWeighted(image, contrast, m, 0.0, 0, dst);
    imshow("亮度与对比度调整", dst);
}

void QuickDemo::tracking_bar_demo(Mat &image) {
    namedWindow("亮度与对比度调整", WINDOW_AUTOSIZE);
    int lightness = 50;
    int max_value = 100;
    int contrast_value = 100;
    createTrackbar("Value Bar:", "亮度与对比度调整", &lightness, max_value, on_lightness, (void*) (&image));
    createTrackbar("Contrast Bar:", "亮度与对比度调整", &contrast_value, 200, on_contrast, (void*)(&image));
    on_lightness(50, &image);
}

 

我记得明明在之前版本debug模式下是可以运行的,如果你知道怎么改而且在OpenCV4.8 Debug模式下验证过,请留下你的意见。

  审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分