【OPENCV学习】TrackBar学习

代码学习还是在毛星云大神的博客里学习的,代码见大神的博客:

文章链接: http://blog.csdn.net/poem_qianmo/article/details/21479533

【遇到的问题】

报错是:OpenCV Error: Assertion failed (dims <= 2 && data && (unsigned)i0 < (unsigned)size.p[0] && (unsigned)(i1*DataType<_Tp>::channels) < (unsigned)(size.p[1]*channels()) && ((((sizeof(size_t)<<28)|0x8442211) >> ((DataType<_Tp>::depth) & ((1 << 3) - 1))*4) & 15) == elemSize1()) in cv::Mat::at, file d:\program files\opencv\build\include\opencv2\core\mat.hpp, line 537

Debug:

这个错误主要是构造矩阵的时候发生了越界,一般有一下这几种情况:

1、没有初始化,我竟忘记给接收处理结果的MAT类型初始化

2、溢出,大神的博客里也有介绍,这句代码比较关键

g_dstImage.at(y,x)[c]= saturate_cast( (g_nContrastValue*0.01)*(g_srcImage.at(y,x)[c] ) + g_nBrightValue );  

“因为我们的运算结果可能超出像素取值范围(溢出),还可能是非整数(如果是浮点数的话),所以我们要用saturate_cast对结果进行转换,以确保它为有效值。”

【p.s.】最近学矩阵论学的好蓝瘦

你可能感兴趣的:(OPENCV,opencv,博客)