关于Opencv的imshow无法正常显示的问题(曾经看到别人说是越界问题,但是不知道怎么解决)

Butterfly_HD 2015-12-18 11:39:05
#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
#define WINDOW_NAME "【线性混合示例】"
//申明全局变量
const int g_nMaxAlphaValue = 100;
int g_nAlphaValueSlider;
double g_dAlphaValue;
double g_dBetaValue;

Mat g_srcImage1;
Mat g_srcImage2;
Mat g_dstImage;
//回调函数
void On_Trackbar(int, void*)
{
g_dAlphaValue = (double)g_nAlphaValueSlider / g_nMaxAlphaValue;
g_dBetaValue = (1.0 - g_dAlphaValue);
addWeighted(g_srcImage1, g_dAlphaValue, g_srcImage2, g_dBetaValue, 0.0, g_dstImage);
imshow(WINDOW_NAME, g_dstImage);
waitKey(30);
}
//主函数
int main(int argc, char** argv)
{
g_srcImage1 = imread("1.jpg");
g_srcImage2 = imread("2,jpg");

g_nAlphaValueSlider = 70;
namedWindow(WINDOW_NAME, 1);
char TrackbarName[50];
sprintf_s(TrackbarName, "透明值 %d", g_nMaxAlphaValue);
createTrackbar(TrackbarName, WINDOW_NAME, &g_nAlphaValueSlider, g_nMaxAlphaValue, On_Trackbar);

On_Trackbar(g_nAlphaValueSlider, 0);
waitKey();
return 0;
}


这是看到的浅墨写的代码
但是,在我的电脑中无法正常的调试
总是显示出这样的中断:
First-chance exception at 0x773E2EEC in creatTrackbar.exe: Microsoft C++ exception: cv::Exception at memory location 0x0072DE50.
Unhandled exception at 0x773E2EEC in creatTrackbar.exe: Microsoft C++ exception: cv::Exception at memory location 0x0072DE50.

我把Imshow注释掉就不会报错,我曾经以为是addWeighted的错,现在发现不是
希望大神们可以告诉我哪里出了bug,应该如何修改
...全文
3885 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ssy_3574 2018-03-19
  • 打赏
  • 举报
回复
请问你们最后解决这个问题了吗,我试着把waitKey(0)的参数改了,确实没有报错了,但是这样图片就会自动退出了,这个问题的本质解决方案是什么呀
luo4lu 2017-03-06
  • 打赏
  • 举报
回复
我也遇到你这样的问题,然后在imshow语句前加一个waitKey(30)等待就可以了。
worldy 2017-03-01
  • 打赏
  • 举报
回复
先检查g_srcImage1数据是否有加载成功
123zhang1991 2017-03-01
  • 打赏
  • 举报
回复
你的问题解决了吗,我也遇到这样的问题了
赵4老师 2015-12-21
  • 打赏
  • 举报
回复
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack即“调用堆栈”里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止。
Butterfly_HD 2015-12-19
  • 打赏
  • 举报
回复



我的图像也没有那么大,其实以前都是显示出来过的
但是,这个程序一直跑得就是有问题,不知道为什么
linzertling 2015-12-19
  • 打赏
  • 举报
回复
1,首先看你的opencv配置是否正确,其实就相当于看看程序中是否有哪个函数被红线标出 2,检查一下图像读取时后缀是否正确,并限制一下输入图像的大小 3,如果还不对,调试一下程序看看哪里有问题

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧