学习OpenCV范例
文章平均质量分 92
小洲实验室
这个作者很懒,什么都没留下…
展开
-
学习OpenCV范例(三)——矩阵的掩码操作
矩阵的掩码操作在图形图像上面来说就是矩阵的卷积运算,使像素点与周围临近的像素点关联起来,可以进行中值滤波,均值滤波,锐化,等等功能,具体想达到怎样的一个功能效果,在OpenCV的其他函数中都有给出,也可以自己给定算子,得到属于自己的滤波器,下面就看看范例的介绍吧。1、矩阵的掩码操作矩阵的掩码操作很简单。其思想是:根据掩码矩阵(也称作核)重新计算图像中每个像素的值。掩码矩阵中的值表示近邻像素原创 2014-03-12 16:32:09 · 3603 阅读 · 0 评论 -
学习OpenCV范例(二十)——角点检测算法
本次范例讲的都是检测角点的算法,在这里我们会讲到,harris角点检测,Shi-Tomasi角点检测,FAST角点检测,尺度不变surf检测,尺度不变sift检测,特征点的描述。由于是算法问题,相对来说会比较复杂,而且都是一些比较经典的算法,如果只是纯粹的想要用算法来实现一些功能,那么只要调用OpenCV几个简单的函数就可以了,但是如果想学习一下理论知识,为以后自己的研究有所帮助,而且想理解函数的原创 2014-04-01 12:25:19 · 8920 阅读 · 0 评论 -
学习OpenCV范例(十二)——更多形态学变换
在学习了图像膨胀和腐蚀这两个形态学操作之后,我们在这基础上又实现了其他一些形态学的操作,接下来介绍的操作有:开运算,闭运算,形态学梯度,顶帽,黑帽1、原理①开运算 操作:开运算是通过先对图像腐蚀再膨胀实现的。 作用:能够排除小团块物体(假设物体较背景明亮),可以消除高于邻近点的孤立点,达到去噪作用,可以平滑物体轮廓、断开较窄的狭颈。请看下面,左图是原图像,原创 2014-03-18 11:29:32 · 2199 阅读 · 0 评论 -
学习OpenCV范例(十四)——sobel,laplace,canny的运用
本次范例将要学习关于边缘提取,图像锐化的三个基本函数,风别是Sobel(),Laplacian(),Canny(),会从原理讲起,再到代码实现,最后会贴出运行结果,进行三种结果的对比。1、原理及计算Sobel:原理:由上图,你可以看到在 边缘 ,相素值显著的 改变 了。表示这一 改变 的一个方法是使用 导数 。 梯度值的大变预示着图像中内容的显著变化。用更加形象的图像来原创 2014-03-20 21:57:47 · 8607 阅读 · 0 评论 -
学习OpenCV范例(十六)——重映射和仿射变换
重映射在图像处理中主要的功能为:将一个图像中一个位置的像素放置到另一个图像指定位置的过程,可以根据自己设定的函数将图像进行变换,较常见的功能有关于x轴翻转,关于y轴翻转,关于x、y轴翻转;仿射变换在图像处理中的主要功能为:对图像进行缩放、旋转、平移、扭曲等。1、原理从下面三个链接可以详细的了解到重映射和仿射变换的原理重映射:http://www.opencv.org.cn/opencv原创 2014-03-22 22:51:13 · 7099 阅读 · 0 评论 -
学习OpenCV范例(十五)——霍夫变换
本次范例通过霍夫变换检测直线和圆,讲解霍夫线变换和霍夫圆变换的原理,代码实现,和演示结果,使用霍夫线变换之前, 首先要对图像进行边缘检测的处理,也即霍夫线变换的直接输入只能是边缘二值图像。而霍夫圆变换则只要输入灰度图像即可,因为在霍夫圆变换的过程中已经用到了canny边缘检测。1、原理霍夫线变换:众所周知, 一条直线在图像二维空间可由两个变量表示. 例如:在 笛原创 2014-03-22 16:33:53 · 4227 阅读 · 1 评论 -
学习OpenCV范例(二十一)——Keypoints+Knn+findHomography进行目标定位
本范例的代码主要都是 学习OpenCV——通过KeyPoints进行目标定位这篇博客提供的,然后在它的基础上稍加修改,检测keypoints点的检测器是SURF,获取描述子也是用到SURF来描述,而用到的匹配器是FlannBased,匹配的方式是Knn方式,最后通过findHomography寻找单映射矩阵,perspectiveTransform获得最终的目标,在这个过程中还通过单映射矩阵来进一原创 2014-04-03 16:52:01 · 26661 阅读 · 3 评论 -
学习OpenCV范例(十七)——直方图计算和均衡化
本次案例将为大家介绍直方图计算和直方图均衡化,直方图的计算非常有用,在很多场合下都可以用上,不仅仅是在图像的灰度值上,还可能是在图像的其他特征上;图像的均衡化在图像预处理时经常被用到,它可以增强对比度,使得像素强度分布范围更广。1、原理直方图计算:http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/tutorials/imgproc/hi原创 2014-03-24 16:10:56 · 5290 阅读 · 0 评论 -
学习OpenCV范例(十八)——反向投影
本次要讲的范例是反向投影,反向投影如果是按照字面上的理解,还有书本上的理解可能会比较困难,但是如果是举一些具体的简单的例子,那可能就比较容易接受了,应用的话,可以检测出肤色区域,例如,你有一个肤色直方图 ( Hue-Saturation 直方图 ),你可以用它来寻找图像中的肤色区域,现在我们来看看反向变换吧。1、原理图像的反向投影图是用输入图像的某一位置上像素值(多维或灰度)对应在直方图的原创 2014-03-26 16:28:12 · 7059 阅读 · 1 评论 -
学习OpenCV范例(二十二)—GrabCut图像分割
由于最近都有很多课,所以就好久没有写博客,今天抽空写一篇,不能落下太多了,要坚持有时间就写写博客,为自己留下一些回忆,也可以到后期忘记的时候及时复习,不积跬步,无以至千里。不积小流,无以成江海。脚踏实地,打好基础,那才是王道,感觉说了一大堆废话,哈哈,现在正式进入主题,今天要讲的内容就是GrabCut图像分割啦,关于图像分割的方法五花八门,非常多,大家都可以从网上找到,包括GrabCut也是,本人原创 2014-06-07 21:18:42 · 6601 阅读 · 0 评论 -
学习OpenCV范例(二十三)—GMM前景检测(一)
前一篇博客中有谈论到混合高斯模型GMM,但是只是在上面的一个小应用,可能没有很彻底的分析,大部分读者看起来有点吃力,那么在这篇微博中就给大家分析一下GMM在前景检测的原理以及在OpenCV中的运用,当然长篇大论的原理我还是不全部写出来的,依旧会贴出其他高手的博客,他们写的个人觉得已经够详细了,再总结已经没什么意思了,也总结不出太多的新意,在这里也是作为记录,谈谈自己的小感悟以及运行的结果和函数的使原创 2014-06-08 20:10:05 · 19299 阅读 · 1 评论 -
学习OpenCV范例(十三)——图像金字塔
以多个分辨率来表示图像的一种有效且概念简单的结构是图像金字塔,一个图像金字塔是一系列以金子塔形状排列的、分辨率逐渐降低的图像集合。——《数字图像处理》。图像金字塔可用于图像的缩小和放大,在后期的讲解中还会涉及到利用图像金字塔对图像进行分割。1、原理一个图像金字塔是一系列图像的集合 - 所有图像来源于同一张原始图像 - 通过梯次向下采样获得,直到达到某个终止条件才停止采样。有两种类型原创 2014-03-18 21:56:52 · 3264 阅读 · 0 评论 -
学习OpenCV范例(十)——图像平滑处理
接下来的范例学习都集中在图像处理方面的学习,首先学习的是图像的平滑处理,相信学过图像处理的同学都不陌生,图像的平滑处理很普遍,最主要的功能就是去噪声,在OpenCV中最经常使用的平滑处理有四种:均值滤波,中值滤波,高斯滤波,双边滤波,在OpenCV1版本中用到的函数是smooth函数,四种处理都包含在smooth函数中,而在OpenCV2版本中被分开了,分别是blur,medianblur,Gau原创 2014-03-16 23:34:50 · 4730 阅读 · 0 评论 -
学习OpenCV范例(二)——OpenCV如何扫描图像、利用查找表和计时
对于如何扫描图像的方法实在是太多了,在浏览一些资料的时候也找到了一些好的方法,到最后把这些方法的链接都贴出来,大家有兴趣的可以参考一下,看看哪种方法适合自己,在这里我还是根据OpenCV提供的范例进行分析。1、建立查找表颜色缩减方法:如果矩阵元素存储的是单通道像素,使用C或C++的无符号字符类型,那么像素可有256个不同值。但若是三通道图像,这种存储格式的颜色数就太多了(确切地说,有一千六原创 2014-03-12 01:35:54 · 4473 阅读 · 0 评论 -
学习OpenCV范例(四)——使用OpenCV对两幅图像求和(求混合(blending))
这个范例相对来说比较简单,简单到在OpenCV的sample里面都没有提供源代码,只能自己复制黏贴tutorial中的代码了,范例中介绍了线性混合操作的原理,和OpenCV提供的 addWeighted()函数的用法,虽然简单,但实现的功能还是挺有趣的,看看吧。1、原理线性混合操作 也是一种典型的二元(两个输入)的 像素操作 :通过在范围 内改变 ,这个原创 2014-03-12 19:02:44 · 3582 阅读 · 0 评论 -
学习OpenCV范例(一)——Mat - 基本图像容器
最近开始搭建好了OpenCV2的环境,准备学习一下OpenCV2的一些新知识,之前有学习旧的版本,主要用于arm板的开发,毕竟是C语言写的,但是之后想做一下界面的东西,发觉OpenCV2和QT比较搭,而且OpenCV在发展,我们也不能落后,要跟上,所以就开始着手学习一下新版本的知识。毕竟OpenCV正规的参考资料很少,要学好OpenCV只能查查文档,看看范例,慢慢积累。于是先从OpenCV提供的t原创 2014-03-11 19:43:27 · 3181 阅读 · 0 评论 -
学习OpenCV范例(五)——改变图像的对比度和亮度
学习到范例五的时候,发觉虽然范例都很简单,但是做记录的时候,并且把程序里面使用过的类或方法都弄明白,也就不简单了,接下来介绍一下范例五吧。1、图像处理一般来说,图像处理算子是带有一幅或多幅输入图像、产生一幅输出图像的函数。图像变换可分为以下两种:点算子(像素变换):图像对比度和亮度,等等邻域(基于区域的)算子:均值滤波,中值滤波,等等,也就是卷积运算2、亮度和对比度调整原创 2014-03-12 23:01:39 · 4613 阅读 · 0 评论 -
学习OpenCV范例(六)——基本绘图
基本绘图相对来说也是非常简单的,只是几个函数的调用而已,在这里OpenCV教程中已经讲得非常详细了,我这里只是贴出代码,运行结果,函数参数解析和函数功能。1、绘图用OpenCV的函数 line 绘 直线用OpenCV的函数 ellipse 绘 椭圆用OpenCV的函数 rectangle 绘 矩形用OpenCV的函数 circle 绘 圆用OpenCV的函数 f原创 2014-03-13 17:17:49 · 5308 阅读 · 1 评论 -
学习OpenCV(七)——随机数发生器和绘制文字
本次范例是在上一次博客学习OpenCV范例(六)——基本绘图的基础上,加上随机数发生器和文字显示,进行更加有趣的开发,当本次范例学习完之后,基本的绘图函数也就学习完了。1、介绍范例通过使用 随机数发生器类 (RNG) 并得到均匀分布的随机数,代入到绘制函数的参数里面,使得产生各种各样的图案,通过使用函数 putText 显示文字,最后通过循环,产生动态效果。2、代码实现#inc原创 2014-03-13 23:11:42 · 2968 阅读 · 0 评论 -
学习OpenCV范例(八)——离散傅立叶变换
离散傅里叶变换到目前为止还是没有十分的了解,也从信号处理的资料中了解一些,但是还是有点朦胧,在这里我也不多谈论,我觉得OpenCV教程中介绍得虽然简单,但是大概意思还是有涵盖到,对于初学者还是比较容易理解的,大家也可以看看这个范例的介绍,写得也比较详细,我这里只是贴出来,然后归纳一些函数和类的用法,现在就介绍一下范例吧。1、原理对一张图像使用傅立叶变换就是将它分解成正弦和余弦两部分。也原创 2014-03-16 15:02:40 · 9965 阅读 · 1 评论 -
学习OpenCV范例(九)——输入输出XML和YAML文件
在OpenCV的学习中,经常会用到文件的输入输出,特别是XML和YAML格式的输出文件,如果大家有做过人脸识别就可以体会到,用主分量分析法得到的特征脸、平均脸等等数据都会被保存成为XML格式,方便下次使用时调用,OpenCV2版本比OpenCV1版本省去了很多函数,大家通过OpenCV中文网就可以查到,而且OpenCV2版本的输入输出使用与STL相同的 > 输入/输出操作符,实现起来非常简单,原创 2014-03-16 17:26:01 · 2525 阅读 · 0 评论 -
学习OpenCV范例(十一)——图像的腐蚀与膨胀
这次范例相对比较简单,是涉及到形态学操作的问题,原理也是比较简单,学习起来比较轻松,大家看完这次的范例分析就可以明白到底图像的腐蚀和膨胀是怎么回事了。1、原理简单来讲,形态学操作就是基于形状的一系列图像处理操作。通过将 结构元素 作用于输入图像来产生输出图像。最基本的形态学操作有二:腐蚀与膨胀(Erosion 与 Dilation)。 他们的运用广泛:消除噪声分割(isolat原创 2014-03-17 21:56:07 · 4329 阅读 · 0 评论 -
学习OpenCV范例(十九)——轮廓提取和形状描述符
本范例主要介绍了如何提取轮廓和用一些形状描述符对轮廓进行表述,轮廓提取函数涉及到的参数很多,没有经常用到它的话,对参数的了解就不会太深刻,这里也按照本人搜索出来的一些资料进行总结,希望对大家有用。1、代码实现本代码实现了多个功能创建了三个滑动条:第一个滑动条表示状态描述符,分别表示为:0:多边形近似1:外接矩形2:外接圆3:力矩第二个滑动条表示轮廓检测mode类原创 2014-03-27 20:42:38 · 14456 阅读 · 1 评论 -
学习OpenCV范例(二十四)—ViBe前景检测(二)
最近导师没给什么项目做,所以有那么一点点小时间,于是就研究起了前景检测,既然前景检测有很多种算法,那干脆就把这些模型都学起来吧,以后用到前景检测时至少还有那么几种方法可以选择,上次介绍的是GMM模型,其实GMM模型本身就是一个很不错的模型,现在也很多人在研究,并且做改进,主要是OpenCV有函数调用,用起来非常方便,当我们都在兴高采烈的讨论GMM各种好的时候,B哥不爽了,他说老子是搞前景检测的,怎原创 2014-06-11 21:10:06 · 12948 阅读 · 11 评论