OpenCV数据类型错误

时间:2016-04-27 11:28:42

标签: c++ opencv

我正在使用OpenCV库在C ++中编写应用程序。我试图用矩阵和一些数据类型操作输出错误进行简单的操作。

例如:

reduce(img, img, 0, CV_REDUCE_SUM, CV_8U); //does not work if img contains CV_8U
reduce(img, img, 0, CV_REDUCE_SUM, CV_64F); //does work if img contains CV_8U

如果按元素划分尝试简单:

Mat A = B / C; //generates data type assertion error if B and C are CV_32F

但如果B和C是CV_64F,那么确实有效。

我真的很感谢你的帮助。不想使用CV_64F,因为它会大大减慢我的程序。

1 个答案:

答案 0 :(得分:1)

减少操作需要一个合适的目标类型,否则它们会因为饱和而产生不一致的结果而失败。

如果要汇总(CV_REDUCE_SUMCV_8U个值,则需要一个足够大的目标类型来包含总和,其中包括:CV_32SCV_32F或{ {1}}。

您可以在source code

中查看此内容以及其他组合