我正在努力把像2942584这样的大整数放在简历垫上。唯一接受它的类型是CV_8UC1,但它将值从2942584更改为120 (显然是8位)。
但是在简历垫上有没有原始值呢??
如果有帮助,下面是简单的代码:
Mat matrix(6,10,CV_8UC1);
matrix.at<char>(0,0) = 2942584;
cout << (int)matrix.at<char>(0,0);输出:
120发布于 2012-08-27 02:59:12
当您将矩阵定义为CV_8UC1时,您定义每个元素必须是8位。这意味着您只能存储从0到255的值。如果你想使用一个大数字,你应该定义矩阵为CV_32UC1 (对于unsigned integers )或者CV_32SC1 (对于signed integers )。此外,您应该将值存储为int而不是char,并以适当的方式读取它。
更正确的代码是
Mat matrix(6,10,CV_32SC1);
matrix.at<int>(0,0) = 2942584;
cout << (int)matrix.at<int>(0,0);还有一件事:矩阵元素的格式如下
CV_<NUMBER_OF_BITS><SIGNED/UNSIGNED>C<NUMBER_OF_CHANNELS>https://stackoverflow.com/questions/12132876
复制相似问题