如果我有一个类型的矩阵CV_32SC1
,我应该在函数中使用什么类型名Mat::at
?
例如
Mat X; // for example eye matrix of size 10,10,and type CV_32SC1
X.at<??????>(1,1)=5;
如何找到其他矩阵类型的类型名?
OpenCV 中矩阵类型名的一般规则是:
CV_<bit_depth>(S|U|F)C<number_of_channels>
S = Signed integer
U = Unsigned integer
F = Float
因此,根据您拥有的前一个字母(S,U,F)中的哪一个,您将铸造<int>
,<unsigned integer>
或<float>
.
CV_32SC1 是有符号 32 位整数的 1 通道,那么我认为X.at<int>()
应该这样做。
Mat 已经“知道”如何寻址像素,该类型只是将位转换为表达式评估所需的 C++ 值。
我在这里找到了一些关于符号的解释。