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

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

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

Mat image= imreadimag);

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

Mat image_roi = image(rect);

另外: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

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

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

时间: 2024-08-11 09:48:47

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

在linux环境下编译运行OpenCV程序的两种方法

原来以为在Ubuntu下安装好了OpenCV之后,自己写个简单的程序应该很容易吧,但是呢,就是为了编译一个简单的显示图片的程序我都快被弄崩溃了. 在谷歌和上StackOverFlow查看相关问题解答之后,我下面就介绍Command Line和CMake两种方式. 首先我先粘上我测试的代码吧,文件名为Test.c 1 #include <highgui.h> 2 3 int main(int argc,char ** argv) { 4 5 IplImage* img = cvLoadImage

Javascript或jQuery方法产生任意随机整数

方法1:javascritp方法 1 2 3 4 5 6 //随机数    function diu_Randomize(b,e){        if(!b && b!=0 || !e){return "?";}        return Math.floor( ( Math.random() * e ) + b );    }    $(window).load = $(".ps"+diu_Randomize(1,12)).show();//1

【字符串】 - 判断是否包含相应的字符 - 截取某一部分字符

**********判断是否包含相应的字符************************************ NSSting *str = @"jack"; NSSring *mStr = @"a"; if ([str rangeOfString: mStr].location != NSNotFound) { NSLog(@"字符串包含a"); } //rangeOfString 前面的参数是要被搜索的字符串,后面的是要搜索的字符    

PHP中实现中文字串截取无乱码的方法

在PHP中,substr()函数截取带有中文字符串的话,可能会出现乱码,这是因为中西文一个字节所占有的字节数不一样,而substr的长度参数是按照字节去算的,在GB2312编码时,一个中文占2个字节,英文为1个字节,而在UTF-8编码当中,一个中文可能占有2个或3个字节,英文或半角标点占1字节. 直接使用PHP函数substr截取中文字符可能会出现乱码,主要是substr可能硬生生的将一个中文字符“锯”成两半.解决办法: 1.使用mbstring扩展库的mb_substr截取就不会出现乱码了.

深入学习使用ocr算法识别图片中文字的方法

公司有个需求,简单点说需要从一张图片中识别出中文,通过python来实现,当然其他程序也行,只要能实现,而小编主要学习python,所以就提了python.一个小白在网上遨游了一天,终于找到一丝丝思绪,特意在此分享,希望大神提出宝贵的意见. 今天还是在学习OCR算法中,但是好像自己摸索确实比较难一点,而且python实现图片中文识别的方法还是不多,所以我打算记录一下自己学习的过程.今天看到一个菜鸟都可以用的开源项目,那就是OCR开源项目tesseract,可能对于还是菜鸟的我来说,最好不过了,可

OpenCV:Mat元素访问方法、性能、代码复杂度以及安全性分析

欢迎转载,尊重原创,所以转载请注明出处: http://blog.csdn.net/bendanban/article/details/30527785 本文讲述了OpenCV中几种访问矩阵元素的方法,在指定平台上给出性能比较,分析每种矩阵元素访问方法的代码复杂度,易用性. 一.预备设置 本文假设你已经正确配置了OpenCV的环境,为方便大家实验,在文中也给出了编译源程序的Makefile,其内容如代码段1所示. 采用如代码段2所示的计时函数,这段代码你可以在我之前的博文中找到,abtic()

截取线程异常的方法

对于线程里面的异常,如果线程里面没有抓获异常会到导致整个进程crash. 这主要是由于每个线程有单独的异常栈,如果在线程内部没有抓获异常,CLR会把异常直接传到system core层,导致进程被kill掉. 这是可以使用ContinueWith()调用其它函数来继续执行,新执行的方法应该是继承报错的线程的线程上下文和异常栈的,所以才可以处理异常,不至于异常传到系统内核导致进程崩溃. var task = Task.Factory.StartNew(() => { throw new Excep

jQuery返回顶部的两种方法(包括go-top.js)

jQuery实现网页"返回顶部"的功能,相信见到这种效果已经不稀奇了吧;那究竟如何实现呢?方法还是挺多了,先介绍两种简单的: 第一种,只使用jquery插件来实现,下面是一个完整的代码例子,有兴趣的自己摸索吧:前端UI分享 .代码   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transi

在Ubuntu 12.04系统中安装配置OpenCV 2.4.3的方法

在Ubuntu 12.04系统中安装配置OpenCV 2.4.3的方法   对于,在Linux系统下做图像识别,不像在windows下面我们可以利用Matlab中的图像工具箱来实现,我们必须借助OpenCV这个开源的图像处理库.但是如何在Ubuntu下面安装呢,其实初学者来说的确很蛋疼,需要配置依赖库的之类的很繁琐. 下面我就以我自己的安装经历给大家一个示例吧. Step 1:建立OpenCV所需的依赖关系.这是一般安装需要自己编译软件的第一步,也是最为重要的一步.在这里强烈建议大家安装一个“新