C++ 从cv::Mat获取部分数据
我有一个尺寸为11000x1085的cv::Mat src(类型:cv_32F) 获取一行数据C++ 从cv::Mat获取部分数据,c++,opencv,mat,C++,Opencv,Mat,我有一个尺寸为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); for(int i=0;i
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);
for(int i=0;i<11000;i++)
对于(int j=3;j<1085;j++)
dst.at(i,j-3)=src.at(i,j);
有没有其他更快的方法呢?这取决于您是否要对数据进行深度复制。您可能希望构建一个感兴趣区域(ROI),如本教程所述,该教程介绍了使用cv::Mat构建数据结构的其他方法: 要为矩形创建感兴趣区域(ROI),请执行以下操作:
Mat Dst (src, Rect(3, 0, 11000, 1085) );
如果要复制数据,请执行以下操作:
Mat Clone = Dst.clone();
你可以用
这不应该是
matdst(src,Rect(3,01085-31100))代码>?
cv::Mat dst = src.colRange(3, 1085);