【发布时间】:2012-04-27 09:27:11
【问题描述】:
我对 OpenCV 中 Mat 对象的 type() 方法有点困惑。
如果我有以下几行:
mat = imread("C:\someimage.jpg");
type = mat.type();
和type = 16。如何找出 mat 矩阵的类型?
我试图在其手册或几本书中找到答案,但徒劳无功。
【问题讨论】:
-
对于人工解释,最好使用
depth()和channels(),而不是使用type(),后者会返回数据类型和通道数之间的复杂组合。 -
@Aldur,depth() 的返回值仍然不是人类可读的。您必须将其与定义进行比较:CV_8U、CV_8S 等...
-
@octopus 当然可以,但是通过一些练习,您可以学习常见的
depth()代码,这对于type()来说要困难得多。 -
请注意 depth() 返回此类型的 CV 枚举值(对初学者有点误导)。如果您需要存储在 Mat 中的一个数字的大小(以字节为单位),请使用 Mat.elemSize1()。如果您在运行时需要该类型,例如在传入不同类型的函数中,您可以在此处找到模板类型 TypeDepth(也许我们应该重命名它,因为它没有 CV 深度):stackoverflow.com/questions/15245262/…
标签: opencv opencv-mat