Opencv 截取图片中一部分的方法(包括任意区域)

对于图像的截取的方式很多都是对 IplImage* img 这种格式的进行操作的。


1.对cvMat操作其实非常的简单:

Mat image= imreadimag);

Rect rect(10, 20, 100, 50);

Mat image_roi = image(rect);

这个需要注意的是: 这种操作实际上是引用的。也就是说,你对image_roi的操作,实际上也是对image上面对应的区域在操作


另外:srcImage(rect).copyTo(roiImage)也可以达到同样的效果!


2.IplImage* img 从图里面截取矩形的操作一般是这个样子的:

CvSize size= cvSize(40,50);//区域大小
 cvSetImageROI(pSrc,cvRect(60,70,size.width, size.height));//设置源图像ROI
 IplImage* pDest = cvCreateImage(size,pSrc->depth,pSrc->nChannels);//创建目标图像
 cvCopy(pSrc,pDest); //复制图像
 cvResetImageROI(pDest);//源图像用完后,清空ROI
 cvSaveImage("Roi.jpg",pDest);//保存目标图像

3. 查阅资料发现,还可以对于任意的区域进行截取:可以参照:http://blog.csdn.net/wuxiaoyao12/article/details/7305865

简单说来是这样的:就是加入了鼠标事件然后存储鼠标事件的画出的区域。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值