
opencv
文章平均质量分 86
songyalong123
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
OpenCV2.4.13 中 选取roi区域,任意形状(矩形,不规则多边形,圆形,椭圆,手动指定形状)
在利用OpenCV对图像进行处理时,通常会遇到一个情况,就是只需要对部分感兴趣区域进行处理。 因此,如何选取感兴趣区域(其实就是“抠图”)。 下面给出一个例子: Mat img = imread(IMG_PATH); Mat cat = imread(CAT_PATH); if (img.empty()|| cat.empty()) cerr << "can原创 2017-12-18 19:54:23 · 30848 阅读 · 6 评论 -
OpenCV2.4.13 中Mat的理解及常用方法
问:Mat是什么? 答:个人见解-> Mat 是一种“容器”,用来装不同类型的数据。 问:可以装哪些类型的数据? 答:因为 Mat在手册的 Basic Structure 下,因此这个要看 手册中的解释: 上图中的第一段可以这样解释: 名称 数据类型 OpenCV中原始(primitive)的数据类型 unsigned char, bool, signed char, unsign原创 2017-12-18 16:20:22 · 692 阅读 · 0 评论 -
OpenCV2.4.13中warpAffine函数理解,旋转,仿射变换,缩放,保持完整图片
本文借鉴了这里以及这里的内容。问题:为什么写这个东西? 答:在进行模板匹配的时候,发现一个问题,对于直接从图片中抠出的模板,匹配效果较好,但是当模板发生形变的时候,效果就不理想了。 在对模板进行形变处理的时候,发现利用 warpAffine得到的结果并不是想要的结果。 因此,就对这个问题进行了搜索。 Mat img = imread(IMG_PATH); if (img.empt原创 2017-12-17 20:00:08 · 9373 阅读 · 1 评论 -
opencv2.4.13文本分割(文字大小不一致的情形,存在旋转的情形)
问题:如果文字大小存在比较大的差异时,怎么办? 答:这里给出另外一种策略,不是使用投影直方图,而是使用膨胀以及寻找连通区域。进行分割。 1)对图像二值化 2)对二值化之后的图像进行膨胀操作(dilate) 3)在2)得到的结果上寻找联通区域的边界(findContours)。 4)利用3)得到的结果画出方框。 本文是对这里的文章的另一种实现。使用C++。 首先,读取图片 Mat原创 2017-12-14 20:02:41 · 745 阅读 · 0 评论 -
OpenCV2.4.13 文本分割(水平垂直,直方图投影)
进行文字分割时,有多种方法,对与不同情况可以分别处理。 问题1:如何进行文字分割? 答:对于文字是一般正规(不同行的文字一样高,每一行内部文字大致一样宽)的文本的情况。 这里给出了一种方法。 1)对图像二值化 2)对二值化之后的图像进行水平方向投影(找到不同行) 3)利用2)得到的结果对二值化图像切割,然后对每一行进行垂直方向的投影(找到每一行内的不同文字) 4)利用 2)和3)得到的原创 2017-12-14 19:42:22 · 6051 阅读 · 1 评论 -
C++中 const int* ,int * cnost,以及指针 (pointer) 的理解
问题:指针如何理解? 这里有一个对指针概念的解释,比较长,我们从另外一个角度来理解指针:将指针理解为一个函数问题:如何理解函数与参数之间的关系? 这里有一个对形式参数,实际参数的解释,我的理解:关键是函数对实际参数的“使用权”与“所有权”。 使用权 所有权 只能使用,不能修改 随心所欲,可以用,可以改 问题:参数让不让你改? 要回答这个问题,就牵涉到另外一个东东:常量下面,我们在原创 2017-12-14 11:22:38 · 941 阅读 · 0 评论 -
OpenCV2.4.13中同一函数不同形参的理解,vector,list区别,findContours理解
OpenCV手册中的函数通常有不止一个定义,其中的形参可以有各种不同的形式,这里以 split 和 merge 两个函数举例进行解释。 每个函数都有两个版本,一个版本利用数组作为形参,一个版本利用 vector 作为形参。 以split 为例,解释一下两个版本中形参的含义 void split(const Mat& src, Mat* mvbegin)第一个形参:const 表示 src 不原创 2017-12-13 20:04:12 · 495 阅读 · 0 评论 -
C++,OpenCV 中template(模板)的简单理解
问题:为什么要写这篇博客呢? 答:在看opencv 2.4.13 的手册的时候,有很多长得是这样的东东: 这里的 template<> class DataType< uchar> 是什么鬼呢? 早期简单的百度了一下,是模板类。 但是随着时间的推移,对模板的理解又有些模糊了,这里总结一下,以备后用。 问题:为甚么要引入 模板? 答:个人理解:为了避免重复劳动。 下面利用本人对各种“原创 2017-12-19 15:53:22 · 1516 阅读 · 0 评论