我很困惑OpenCV Mat元素类型。这是从文档:OpenCV Mat元素类型及其大小
There is a limited fixed set of primitive data types the library can operate on.
That is, array elements should have one of the following types:
8-bit unsigned integer (uchar)
8-bit signed integer (schar)
16-bit unsigned integer (ushort)
16-bit signed integer (short)
32-bit signed integer (int)
32-bit floating-point number (float)
64-bit floating-point number (double)
...
For these basic types, the following enumeration is applied:
enum { CV_8U=0, CV_8S=1, CV_16U=2, CV_16S=3, CV_32S=4, CV_32F=5, CV_64F=6 };
据了解,C++标准没有定义以字节为单位基本类型的大小,所以他们是如何使用这样的假设?我应该指望什么类型的CV_32S,它是int32_t还是int?
类型在OpenCV中是很容易理解。 CV_numbitsType。所以CV_16S是一个16位长的有符号整数。 – 2013-03-06 11:03:23
那么为什么他们在文档(int,float等)中为它们使用这样的名称,而(例如)int可以是64位而不是32位? – lizarisk 2013-03-06 11:14:35
我真的不知道底层结构,但是当您使用类型CV_32S创建一个垫子时: 'Mat myMat(10,10,CV_32S);' 您可以用 'myMat.at(1,1) = 1;' –
sfotiadis
2013-03-06 11:20:49