首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >大整数的cv::Mat

大整数的cv::Mat
EN

Stack Overflow用户
提问于 2012-08-27 02:44:33
回答 1查看 2.2K关注 0票数 3

我正在努力把像2942584这样的大整数放在简历垫上。唯一接受它的类型是CV_8UC1,但它将值从2942584更改为120 (显然是8位)。

但是在简历垫上有没有原始值呢??

如果有帮助,下面是简单的代码:

代码语言:javascript
复制
Mat matrix(6,10,CV_8UC1);
matrix.at<char>(0,0) = 2942584;
cout << (int)matrix.at<char>(0,0);

输出:

代码语言:javascript
复制
120
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-27 02:59:12

当您将矩阵定义为CV_8UC1时,您定义每个元素必须是8位。这意味着您只能存储从0到255的值。如果你想使用一个大数字,你应该定义矩阵为CV_32UC1 (对于unsigned integers )或者CV_32SC1 (对于signed integers )。此外,您应该将值存储为int而不是char,并以适当的方式读取它。

更正确的代码是

代码语言:javascript
复制
Mat matrix(6,10,CV_32SC1); 
matrix.at<int>(0,0) = 2942584;
cout << (int)matrix.at<int>(0,0);

还有一件事:矩阵元素的格式如下

代码语言:javascript
复制
CV_<NUMBER_OF_BITS><SIGNED/UNSIGNED>C<NUMBER_OF_CHANNELS>
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12132876

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档