我尝试传递Mat_<float>
作为cv::projectPoints
的目的地。每当我在运行时_OutputArray::create
抱怨时,该类型已修复(fixedType()
和fixedSize()
)。
遗憾的是,文档并没有真正解释这些概念,更不用说描述了使用实例化OutputArray
(这是一个非常有问题的转换器类)跳过的障碍。
有人可以透露OpenCV的滑稽动作以及如何让它起作用吗?
答案 0 :(得分:1)
采用OutputArray
的{{1}}构造函数设置Mat_<T>
标志,因为它是预先确定的(在您的情况下为FIXED_TYPE
)。由于这意味着单通道矩阵并且float
想要创建双通道输出,因此它会失败。使用projectPoints
或类似的东西。
与vasile所说的相反,你可以使用Mat_<Vec2f>
和Mat_<T>
(它具有固定的大小和类型)作为OutputArray({有明确的构造函数} {1}}和Matx
,只是那些构造函数设置了标记,表示某些内容无法更改,因此尝试更改它们的函数将失败。)