#CV

OpenCV学习(20) grabcut分割算法

     在OpenCV中,实现了grabcut分割算法,该算法可以方便的分割出前景图像,操作简单,而且分割的效果很好。算法的原理参见papaer:“GrabCut”—InteractiveForegroundExtractionusingIteratedGraphCu...

OpenCV学习(19) 细化算法(7)

最后再来看一种通过形态学腐蚀和开操作得到骨架的方法。http://felix.abecassis.me/2011/09/opencv-morphological-skeleton/代码非常简单:voidgThin::cvmorphThin(cv::Mat&src,cv::Mat&dst) &#...
代码星球 ·2020-04-17

OpenCV学习(18) 细化算法(6)

本章我们在学习一下基于索引表的细化算法。假设要处理的图像为二值图,前景值为1,背景值为0。索引表细化算法使用下面的8邻域表示法:一个像素的8邻域,我们可以用8位二进制表示,比如下面的8邻域,表示为00111000=0x38=56我们可以枚举出各种情况下,当前像素能否删除的表,该表大小为256。它的索引即为8邻域表示的值...
代码星球 ·2020-04-17

OpenCV学习(17) 细化算法(5)

本章我们看下Pavlidis细化算法,参考资料http://www.imageprocessingplace.com/downloads_V3/root_downloads/tutorials/contour_tracing_Abeer_George_Ghuneim/theo.htmlComputerVisiAlgor...
代码星球 ·2020-04-16

OpenCV学习(16) 细化算法(4)

本章我们学习Rosenfeld细化算法,参考资料:http://yunpan.cn/QGRjHbkLBzCrn在开始学习算法之前,我们先看下连通分量,以及4连通性,8连通性的概念:http://www.imageprocessingplace.com/downloads_V3/root_downloads/tutori...
代码星球 ·2020-04-16

OpenCV学习(15) 细化算法(3)

     本章我们学习一下Hilditch算法的基本原理,从网上找资料的时候,竟然发现两个有很大差别的算法描述,而且都叫Hilditch算法。不知道那一个才是正宗的,两个算法实现的效果接近,第一种算法更好一些。第一种算法描述参考paper和代码:LinearSkelet...
代码星球 ·2020-04-16

OpenCV学习(14) 细化算法(2)

     前面一篇教程中,我们实现了Zhang的快速并行细化算法,从算法原理上,我们可以知道,算法是基于像素8邻域的形状来决定是否删除当前像素。还有很多与此算法相似的细化算法,只是判断的条件不一样。在综述文章,ThinningMethodologies-ACompreh...
代码星球 ·2020-04-16

OpenCV学习(13) 细化算法(1)

程序编码参考经典的细化或者骨架算法文章:T.Y.ZhangandC.Y.Suen,“Afastparallelalgorithmforthinningdigitalpatterns,”Comm.ACM,vol.27,no.3,pp.236-239,1984.它的原理也很简单:   ...
代码星球 ·2020-04-16

OpenCV学习(12) 图像的腐蚀与膨胀(3)

通过使用不同的结构元素来进行膨胀腐蚀操作,可以检测图像中的角点,下面就一步一步看这个算法如果实现角点检测。原图像:首先我们创建四个结构元素先用十字结构元素对原图像进行膨胀操作,得到下面的图像再对这个图像用钻石型结构元素进行腐蚀操作,得到图像1,如下图所示:接着,我们对原图像用X型结构元素进行膨胀操作,得到:我们再用方形...

OpenCV学习(11) 图像的腐蚀与膨胀(2)

先对一副灰度图像进行腐蚀操作,然后在腐蚀后的图像上再进行膨胀操作,我们定义这个操作为开操作。先对一副图像进行膨胀操作,然后在膨胀后的图像上再进行腐蚀操作,我们定义这个操作为闭操作。     开操作可以去掉场景中一些孤立的点,而闭操作通常可以填充前景中一些小洞,通常通过这...

OpenCV学习(10) 图像的腐蚀与膨胀(1)

建议大家看看网络视频教程:http://www.opencvchina.com/thread-886-1-1.html  腐蚀与膨胀都是针对灰度图的形态学操作,比如下面的一副16*16的灰度图。它每个像素对应的值为(每个像素值范围都在0-255之间)为:    ...

OpenCV学习(6) 文件和Mat之间的数据交换

     有时候为了便于调试算法,我们需要从文本文件或二进制文件中读取数据,并把数据放到相应的矩阵中去。我们通常可以通过下面的函数实现。 1、从二进制文件中读取数据。    新建一个txt文件input.txt,在vs2...

OpenCV学习(5) Mat的基本操作(2)

     本章我们学习一下Mat中的常用操作,因为在后面其它的教程中,我们经常要对图像进行各种处理,也要使用这些操作。一、Mat的复制,就是从一个矩阵A,生成相关的另一个矩阵B。(1)使用赋值的方法,比如通过构造函数生成矩阵N,通过复制生成矩阵Pcv::MatN(M);...

OpenCV学习(4) Mat的基本操作(1)

     图像在OpenCV中都是通过Mat类来存储的,Mat可以用来表示N维矩阵,当然用的最多的还是二维矩阵。     Mat类有两部分组成:第一部分是头信息,这些信息主要用来描述矩阵,比如矩阵维数ndims,rows...

OpenCV学习(3) OpenCV框架

     OpenCV是一个开源的视觉库,其中包括很多计算机视觉的算法实现。在版本2.2以后,OpenCV采用C++特征的API,在1.x版本中,OpenCV函数都是传统的C语言形式。     OpenCV采用模块化的结...
代码星球 ·2020-04-16
首页上一页...1213141516...下一页尾页