OpenCV 无效操作数错误

Posted

技术标签:

【中文标题】OpenCV 无效操作数错误【英文标题】:OpenCV invalid operands error 【发布时间】:2013-05-20 21:01:08 【问题描述】:

我正在尝试编译一些 OpenCV 代码但没有成功。所以,如果你能帮助我,那就太好了。

这是代码:

cv::Vec3b c = my_cv_mat.at<cv::Vec3b>(i, j) / interval;
cv::Vec3b t = another_cv_mat.at<cv::Vec3b>(i, j) / interval;

错误是:

Invalid operands to binary expression ('cv::Vec<unsigned char,3>' and 'int')

需要注意的一点是,我正在编译一个支持 OpenCV 的 ios 应用程序。有什么想法可以解决这个问题吗?我已经检查了源代码,它与其他运行良好的项目完全相同。

非常感谢。

【问题讨论】:

该代码对我来说编译得很好。您可能需要提供更多详细信息才能获得好的答案。 【参考方案1】:

您的my_cv_mat 和您的another_cv_mat 是具有三个通道的图像吗?如果不是,您的代码可能会导致错误或返回虚假值。您可能正在使用灰度或二值图像。在这种情况下,使用cv::uchar 而不是cv::Vec3b

【讨论】:

小心——如果那些cv::Mats 没有三个通道,代码编译。但是,结果将毫无意义。

以上是关于OpenCV 无效操作数错误的主要内容,如果未能解决你的问题,请参考以下文章

opencv TypeError:“插值”是此函数的无效关键字参数

无效或损坏的 lib 文件 opencv_core220d.lib

从“CvSeq”类型到“CvPoint*”类型的无效转换(如何在 Opencv 中进行类型转换)

Opencv 2.1 Sobel检测器通过错误

OpenCV - 迭代向量时出现“无效参数”

Valgrind 大小为 4 的无效读取(OpenCV)