C::Mat取出指定區域的方法

 

使用Rect類
使用Rect類可以方便的獲取矩陣中某一特定的矩形區域的值,構造一個矩形有多種方式,如知道一個矩形的左上角座標(x, y),還有矩形的寬度和高度,就可以確定一個矩形,構造函數爲:

Rect(int _x, int _y, int _width, int _height);


也可以將_width和_height保存在一個Size中,構造函數爲:

Rect(int _x, int _y, Size size);



如果知道左上角和右下角的座標也可以構造一個矩形,構造函數爲:

Rect(Point2i &pt1, Point2i &pt2);



如在mat中獲取一個2x2的矩形區域構成的Mat:

Mat roi1 = mat(Rect(Point(2,1), Point(3,2)));
Mat roi2 = mat(Rect(2,1,2,2));
Mat roi3 = mat(Rect(Point(2,1), Size(2,2)));


使用Rect類與使用colRange和rowRange類似,這樣得到的矩形區域是指向原矩陣的,如果改變roi1中的值,mat也會被改變,同樣可以使用clone或者copyTo來避免這種情況

Mat roi2 = mat(Rect(2,1,2,2)).clone();


--------------------- 
作者:andr_gale 
來源:CSDN 
原文:https://blog.csdn.net/gzx110304/article/details/89819421 
版權聲明:本文爲博主原創文章,轉載請附上博文鏈接!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章