Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在InitUnderdistortyMap中,断言失败(K.size()==size(3,3)&;(D.empty()| | D.total()==4))_C++_Opencv - Fatal编程技术网

C++ 在InitUnderdistortyMap中,断言失败(K.size()==size(3,3)&;(D.empty()| | D.total()==4))

C++ 在InitUnderdistortyMap中,断言失败(K.size()==size(3,3)&;(D.empty()| | D.total()==4)),c++,opencv,C++,Opencv,我有一个OpenCV-3.3.1代码,用于接收鱼眼图像和相机信息 我使用的是cv::fisheye::unsortimage(输入img,输出img,K,D)取消鱼眼图像失真的功能。我的相机矩阵是一个3乘3的double类型向量,而我的失真系数向量是一个1乘5的double类型向量 当我打印出K和D变量时,我得到: D = -0.0107835 0.0484281 -0.045424 0.00873738 0 K = 286.704 0 413.346 0 286.782 39

我有一个OpenCV-3.3.1代码,用于接收鱼眼图像和相机信息

我使用的是
cv::fisheye::unsortimage(输入img,输出img,K,D)取消鱼眼图像失真的功能。我的相机矩阵是一个3乘3的double类型向量,而我的失真系数向量是一个1乘5的double类型向量

当我打印出
K
D
变量时,我得到:

D = 
-0.0107835 0.0484281 -0.045424 0.00873738 0 

K = 
286.704 0   413.346 
0   286.782 397.179 
0   0   1   
但是,
cv::fisheye::unsortimage
抛出以下错误:

[错误][1599838848.368370935]:cv异常: /tmp/binarydeb/ros-kinetic-opencv3-3.3.1/modules/calib3d/src/fisheye.cpp:427: 错误:(-215)K.size()==size(3,3)和&(D.empty()| | D.total()==4) 在函数initundistortyMap中

我进入了,发现此错误的条件是:

CV_断言(K.size()=size(3,3)和&(D.empty()| | D.total()=4))

然后我打印了以下内容:(注意,
'classstd::vector'没有名为'total'的成员
,这是一个特定的成员,因此我打印了vector的大小
D

基于此,
K.size()==size(3,3)和&(D.empty()| | D.total()==4)
应该返回False,并且不应该抛出断言错误。我错过了什么

从文件:

cv::fisheye::Underortimage(输入失真、输出未失真、输入K、输入D、输入Knowed=cv::noArray()、常量大小和新大小=大小())


注意:我看到了,但它没有解决我的问题。

断言如果是错误的,就会失败。如果为false,则应抛出断言。@user253751我明白了。你建议我如何解决这个问题?当断言为假时,你必须使断言为真。如果为false,则应抛出断言。@user253751我明白了。你建议我如何解决这个问题?你必须让这个断言成为事实
K.size() = 3
D.empty() = 0
D.size() = 5