选取图像局部区域

1.单行或单列选择

//假设取A得第i行和第j列
Mat line = A.row(i);
Mat line_two = A.col(j);

//将第一行的所有元素都*2赋给第j行
A.row(j) = A.row(1)*2

 2.用Range选择多行多列

/*Range 是 OpenCV 中新增的类,该类有两个关键变量 star 和 end。
Range对象可以用来表示矩阵的多个连续的行或者多个连续的列。
其表示的范围为从 start 到 end,包含 start,但不包含 end。*/
class Range { 
    public:     ...     
    int start, end; 
};

/*Range 类还提供了一个静态方法 all(),这个方法的作用如同 Matlab 中的“:”, 表示所有的行或者所有的列。 
*/

//创建一个单位阵
Mat A = Mat::eye(10,10,cv_32S);

//提取第一到第三列(不包括3)
Mat B = A(Range::all(), Range(1,3));

//提取B的第5到第9行(不包括9)
//等价于C = A(Range(5,9), Range(1,3))
Mat C = B(Range(5,9),Range::all());

3.感兴趣区域(Region of interest)

第一种方法:构造函数

//创建宽度为320.高度为240的3通道图像
Mat img(Size(320,240),CV_8UC3);

//roi是img中Rect(10,10,100,100)区域的对象
Mat roi(img, Rect(10,10,100,100));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值