我有一个大小为11000x1085的cv :: Mat src(类型:CV_32F)。
获取行数据
cv::Mat dst = src.row();
如果我想从第4列到第1085页获取数据,我会这样做。
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);
还有其他方法可以更快地完成吗?
答案 0 :(得分:2)
这取决于您是否要制作数据的深层副本。您可能希望构建一个感兴趣的区域(ROI),如本有用的教程所述,该教程描述了使用cv :: Mat构建数据的其他方法:
为矩形创建感兴趣区域(ROI):
Mat Dst (src, Rect(3, 0, 11000, 1085) );
如果要复制数据:
Mat Clone = Dst.clone();
答案 1 :(得分:1)
您可以使用Mat::colRange
cv::Mat dst = src.colRange(3, 1085);