OpenCV的一个bug?该怎么解决
OpenCV的一个bug?
CvMat* a=cvCreateMat(10,10,CV_8SC1);
CvMat* b=cvCreateMat(10,10,CV_8SC1);
CvMat* c=cvCreateMat(10,10,CV_8SC1);
cvSetZero(a);
cvSetZero(b);
cvSetZero(c);
cvAdd(a,b,c);
上面这么简单代码,
cvAdd函数运行出错,为什么。
------解决方案--------------------
不算bug吧。
主要是深度问题。你用的8位有符号数,那么a矩阵中元素的值加上b矩阵对应元素的值就可能超过127(8位有符号数能表示的最大的数),从而变成了负数。这样是不允许的!OPenCV检查这个潜在的错误。当你定义的矩阵是8位有符号时,将出错。
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
CvMat* a=cvCreateMat(10,10,CV_8SC1);
CvMat* b=cvCreateMat(10,10,CV_8SC1);
CvMat* c=cvCreateMat(10,10,CV_8SC1);
cvSetZero(a);
cvSetZero(b);
cvSetZero(c);
cvAdd(a,b,c);
上面这么简单代码,
cvAdd函数运行出错,为什么。
------解决方案--------------------
不算bug吧。
主要是深度问题。你用的8位有符号数,那么a矩阵中元素的值加上b矩阵对应元素的值就可能超过127(8位有符号数能表示的最大的数),从而变成了负数。这样是不允许的!OPenCV检查这个潜在的错误。当你定义的矩阵是8位有符号时,将出错。
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------