版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Zdreamcsdn/article/details/77542531 </div>
<link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-3019150162.css">
<link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-3019150162.css">
<div class="htmledit_views" id="content_views">
课本解释两者为:
rowRange为指定的行span创建一个新的矩阵头,可取指定行区间元素
colRange为指定的列span创建一个新的矩阵头,可取指定列区间元素
自我初步理解:
rowRange(int x, int y) (其中y应小于等于行数,例如一个矩阵最大为5行,那么y最大为4) 的创建矩阵范围为从x行为首行开始,往后数y-x行。
例如:rowRange(0,3) 位 从第0行开始,往后数3行。即 0 、1、2行。
colRange(int x,int y)同理。
Mat.rowRange(int x,int y)和Mat.rowRange(range(int x,int y)得到的结果一样,函数取的实际行数y-x,只取到范围的左边界,而不取右边界。
(特别注意:网上好多的文章虽然测试结果正确,但是结论却是错误的,曾被误导的飘过~)
-
#include<stdio.h>
-
#include<opencv.hpp>
-
#include<iostream>
-
using
namespace cv;
-
using
namespace
std;
-
int main()
-
{
-
//初始化一个3*3的矩阵
-
Mat examples = (Mat_<
float>(
3,
3) <<
1,
0,
0,
0,
1,
0,
0,
0,
1);
-
//取example中中特定范围的行列构成矩阵
-
</