首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从cv::Mat获取部分数据

从cv::Mat获取部分数据
EN

Stack Overflow用户
提问于 2014-09-05 02:56:37
回答 2查看 1.9K关注 0票数 1

我有一个大小为11000x1085的cv::Mat src (类型: CV_32F)。

获取一行数据

代码语言:javascript
复制
cv::Mat dst = src.row();

如果我想从第4列到第1085列获得数据,我就这样做。

代码语言:javascript
复制
for(int i = 0; i < 11000; i++)
   for(int j = 3; j < 1085; j++)
      dst.at<double>(i,j-3) = src.at<double>(i,j);

还有其他更快的方法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-05 05:08:29

你可以用席特::朗格

代码语言:javascript
复制
cv::Mat dst = src.colRange(3, 1085);
票数 1
EN

Stack Overflow用户

发布于 2014-09-05 04:32:32

这取决于您是否想要对数据进行深度复制。您可能想要构建感兴趣的区域(ROI),如本教程中所描述的,它描述了使用cv::Mat来构造数据的其他方法:

container.html

若要为矩形创建感兴趣区域(ROI):

代码语言:javascript
复制
Mat Dst (src, Rect(3, 0, 11000, 1085) );

如果要复制数据,请:

代码语言:javascript
复制
Mat Clone = Dst.clone();
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25678013

复制
相关文章

相似问题

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