我有一些代码希望能够同时处理 8 位和 16 位图像。
现在代码之间的唯一区别是 8 位代码使用:
filename.at<uchar>(i, j)
16位代码使用:
filename.at<ushort>(i, j)
现在最简单的方法是在顶部包含一个检查图像类型的 if 语句,然后我只有两个代码块做同样的事情,但我想避免这个,因为维护变得有点痛苦。
首先,我通读了 OpenCV 文档,我可能错过了它,但我没有看到任何返回 Mat 对象用于存储像素数据的数据类型的内容。因此,如果我错过了它,我会感到很傻,但那将是最好的。
我研究的另一个选项是函数指针,但我不确定是否可以为 .at 模板函数执行此操作。
非常感谢对任何这些选项的任何建议。