首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无8位系统上的CV_8U opencv矩阵

无8位系统上的CV_8U opencv矩阵
EN

Stack Overflow用户
提问于 2011-09-30 19:42:48
回答 1查看 571关注 0票数 0

我读到有符号字符和无符号字符类型不能保证在每个平台上都是8位,但有时它们会超过8位。如果是这样,那么使用OpenCv我们如何确保CV_8U始终是8位的呢?我已经写了一个简短的函数,它接受一个8位的Mat,如果需要的话,碰巧将CV_8SC1 Mat元素转换为uchars,将CV_8UC1转换为schar。现在我担心它不是平台独立的,我应该以某种方式修复代码(但不知道如何修复)。

附言:同样的,在没有32位整型的机器上,CV_32S怎么总是整型呢?

EN

回答 1

Stack Overflow用户

发布于 2011-11-19 22:22:42

你能举个例子(我从来没听说过)吗?您可能指的是在cv::Mat中添加到行尾的填充。这没有问题,因为通常不使用填充,特别是如果您使用接口函数,例如迭代器(c.f.),则没有问题。如果你发布一些代码,我们可以看到,你的实现是否真的有这样的问题。

代码语言:javascript
复制
// template methods for iteration over matrix elements.
// the iterators take care of skipping gaps in the end of rows (if any)
template<typename _Tp> MatIterator_<_Tp> begin();
template<typename _Tp> MatIterator_<_Tp> end();

CV_32S将始终是32位整数,因为它们使用的类型类似于inttypes.h中定义的类型(例如int32_tuint32_t),而不是特定于平台的intlong等。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7609837

复制
相关文章

相似问题

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