Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 从cv::Mat获取部分数据_C++_Opencv_Mat - Fatal编程技术网

C++ 从cv::Mat获取部分数据

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

我有一个尺寸为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<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);