我对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?
Mat myMat(10,10,CV_32S);
您可以通过以下方式访问它:myMat.at<int>(1,1) = 1;
- sfotiadiscv::Mat_<long>
。但我怀疑你是否能够对其应用任何OpenCV函数。 - Antonio