opencv提取Mat中的某些行和列

原始Mat格式数据:

cv::Mat A = Mat::zeros(4, 5, CV_32F);【4行5列,高4宽5】

1、提取行

函数:Mat::rowRange(int startrow, int endrow)

例:提取第0~2行(包括第2行)

cv::Mat B = A.rowRange(0, 3).clone() ;

2、提取列

函数:Mat::colRange(int startcol, int endcol)

例:提取第2~4列(包括第4列)

cv::Mat C = A.colRange(2, 5).clone() ;

注意,rowRange(start,end)与colRange(start,end)均包括左边界,不包括右边界。

3、copyTo()函数

Mat c = Mat::zeros(3, 5, CV_32F);

Mat a = Mat::ones(3, 6, CV_32F);

1)将c的第1列赋值给a

c.col(0).copyTo(a.col(0));

2)将c的1-5列赋值给a

c.copyTo(a.colRange(1, 6));

发布了191 篇原创文章 · 获赞 104 · 访问量 34万+

猜你喜欢

转载自blog.csdn.net/u013925378/article/details/100518293
今日推荐