检查OpenCV矩阵是否为浮点型组件类型

3
我希望在运行时测试一个cv::Mat是否具有浮点分量类型,即其类型是否为CV_32FxxCV_64Fxx之一。我可以使用if (mat.type() % 8 >= 5) {/*...*/}来实现,但这看起来不够直观,并且如果OpenCV进一步发展可能会出错。
有更好的方法吗?

Mat::depth()不能胜任这项工作吗? - Iwillnotexist Idonotexist
这正是我正在寻找的。我只是在用错误的词语搜索,比如“组件类型”、“组件大小”、“每个组件的位数”、“每个通道的位数”、“通道类型”等等……我都快疯了。请把它写成答案,我会接受它的。 - Daniel S.
1个回答

3
你需要的是OpenCV的Mat::depth(),它报告元素的"深度": 无论是CV_8UCV_8SCV_16UCV_16SCV_32SCV_32F还是CV_64F。对于你的目的,你只需要与最后两个进行比较。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接