错误是什么?
昨天有个在B站上学习我的《OpenCV C++快速入门30讲》视频课程的小伙伴跟我反馈说,P8对应OpenCV代码只要一拖动滚动条运行就卡死,白天我很忙就没时间,晚上跟他一起腾讯会议了一下,让他演示给我看了一下,发现的确是这样,错误显示如下:
问题解决与原因查找
于是我在自己机器上运行同样的代码却没有问题,程序没有崩溃,最后对齐了他跟我的版本信息如下:
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模式下验证过,请留下你的意见。
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !