gpt4 book ai didi

c++ - cv::大整数垫

转载 作者:搜寻专家 更新时间:2023-10-31 00:17:56 25 4
gpt4 key购买 nike

我正在努力将大整数(例如 2942584)放入 cv Mat 中。唯一接受它的类型是 CV_8UC1,但它将值从 2942584 更改为 120(显然是 8 位)。

但是无论如何在 cv Mat 中有原始值吗??

如果有帮助,这里是简单的代码:

Mat matrix(6,10,CV_8UC1);
matrix.at<char>(0,0) = 2942584;
cout << (int)matrix.at<char>(0,0);

输出:

120

最佳答案

当您将矩阵定义为 CV_8UC1 时,您定义每个元素都必须是 8 位。这意味着您只能存储 0 到 255 之间的值。如果您想使用大数字,您应该将矩阵定义为 CV_32UC1 for unsigned integersCV_32SC1 用于有符号整数。此外,您应该将值存储为 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>

关于c++ - cv::大整数垫,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12132876/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com