opencv中的图像区域复制

openCV作为已经成熟的开源库,很多操作它都已经有了高效,使用方便的方法。我的应用场景是这样的,从一张大图片中抠出一小部分,然后处理这一小部分后再放到大图像中。对于抠出来可以这样实现:

Rect rect = Rect( x, y, width, height);
Mat p = (Mat( src, rect)).clone();

利用src源图像的rect区域图像信息实例化一个新的Mat图像,并将这部分图像clone给这个新实例,不加上clone()的话新图像的data将指向src的data。这样之后将实现提取源图像中对角点(x,y)与(x+width, y+height)之间矩阵的图像部分到p中保存。

将小块的图像放入到大图像中,可以这样:

CvRect rect = CvRect( Rect(x, y, width, height));
src->copyTo(dst(rect));

用的是openCV的copyTo方法,原理是将(Mat *)src拷贝到dst的rect区域。

posted on 2014-11-10 15:37  GISVito  阅读(1560)  评论(0编辑  收藏  举报

导航