数字图像处理
文章平均质量分 85
Herbert_Zero
这个作者很懒,什么都没留下…
展开
-
OpenCV2学习笔记(二十二):ORB特征提取
ORB(ORiented Brief)特征提取算法,其前身Brief,是由EPFL的Calonder在ECCV2010上提出了一种可以快速计算且表达方式为二进制编码的描述子,主要思路就是在特征点附近随机选取若干点对,将这些点对的灰度值的大小,组合成一个二进制串,并将这个二进制串作为该特征点的特征描述子。原创 2015-07-18 15:45:25 · 14069 阅读 · 2 评论 -
OpenCV2学习笔记(十一):特征点检测之FAST算法
本节记录另一种特征点检测算子FAST(Features from Accelerated Segment Test),它依赖少数像素的比较来确定是否接受一个特征点,其检测效率要好于Harris。FAST算法可以获得非常快速的特征点检测,在需要考虑运行速度的时候可以选用,比如在高帧率的视频序列中进行视觉跟踪。原创 2015-03-09 00:21:27 · 4969 阅读 · 0 评论 -
OpenCV2学习笔记(十二):特征提取算法SIFT与SURF
当尝试在不同图像之间进行特征匹配时,通常会遇到图像的大小、方向等参数发生改变的问题,简而言之,就是尺度变化的问题。每幅图像在拍摄时与目标物体的距离是不同的,因此要识别的目标物体在图像中自然会存在不同的尺寸。因此,计算机视觉中引入尺度不变的特征,主要的思想是每个检测到的特征点都伴随对应的尺度因子。特征提取算法SIFT与SURF算法是两种著名的特征点检测算法。原创 2015-03-11 00:48:11 · 34741 阅读 · 5 评论 -
OpenCV2学习笔记(五):图像滤波基础
滤波是数字图像处理中的一个基本操作,在信号处理领域可以说无处不在。图像滤波,即在尽量保留图像细节特征的条件下对目标图像的噪声进行抑制,通常是数字图像处理中不可缺少的操作,其处理效果的好坏将直接影响到后续运算和分析的效果。简单来说,图像滤波的根本目的是在图像中提取出人类感兴趣的特征。原创 2015-03-02 18:33:17 · 9500 阅读 · 3 评论 -
OpenCV2学习笔记(十):特征点检测之Harris法
在计算机视觉中,特征点的概念被大量用于解决物体识别、图像匹配、视觉跟踪、三维重建等问题,如图像中物体的角点,它们是在图像中可被轻易而精确地定位的二维特征。这里主要使用Harris特征检测器检测图像角点。原创 2015-03-08 17:26:27 · 7924 阅读 · 1 评论 -
OpenCV4Android SDK在Win 8.1平台上的配置
这篇文章主要记录自己安装和配置 OpenCV4Android SDK的过程。我的安装环境是:win8.1 64位。Android上的OpenCV开发。原创 2015-03-28 08:38:54 · 2662 阅读 · 0 评论 -
OpenCV2学习笔记(八):使用霍夫变换检测直线和圆
在研究一幅图像时,常常会遇到一些平面或线性问题,直线在图像中频繁可见。这些富有意义的特征在物体识别等图像处理过程中扮演着重要的角色。本节主要记录一种经典的检测直线算法——霍夫变换(Hough Transform),用Hough变换检测图像中的直线和圆。原创 2015-03-03 15:59:39 · 7682 阅读 · 1 评论 -
OpenCV2学习笔记(十三):基于SURF特征的图像匹配
SURF算法是著名的尺度不变特征检测器SIFT(Scale-Invariant Features Transform)的高效变种。这里使用SURF算法提取两幅图像中的特征点描述子,并调用OpenCV中的函数进行匹配,最后输出一个可视化的结果,开发平台为Qt5.3.2+OpenCV2.4.9。基于SURF特征的图像匹配。原创 2015-03-12 22:08:05 · 16173 阅读 · 1 评论 -
OpenCV2学习笔记(九):视频流读取与处理
由于项目需要,计划实现九路视频拼接,因此必须熟悉OpenCV对视频序列的处理。视频信号处理是图像处理的一个延伸,所谓的视频序列是由按一定顺序进行排放的图像组成,即帧(Frame)。在这里,主要记录下如何使用Qt+OpenCV读取视频中的每一帧,之后,在这基础上将一些图像处理的算法运用到每一帧上(如使用Canny算子检测视频中的边缘)。原创 2015-03-05 17:19:48 · 29043 阅读 · 5 评论 -
OpenCV2学习笔记(十七):VS2013中运行支持OpenGL的OpenCV工程
在VS中直接使用预编译的OpenCV进行开发,结果在使用OpenGL时提示”No OpenGL support”。上网查了一下,是因为预编译好的library不支持OpenGL,因此需要使用cmake重新build工程。我的开发环境是:Win 8.1+VS2013+OpenCV 2.4.9。原创 2015-04-04 14:05:23 · 7457 阅读 · 9 评论 -
OpenCV2学习笔记(二十一):GPU模块小记
接触一下OpenCV里一个之前没有接触的模块:GPU。目前,OpenCV中已提供了许多GPU函数,直接使用OpenCV提供的GPU模块,可以完成大部分图像处理的加速操作。该方法的优点是使用简单,利用GpuMat管理CPU与GPU之间的数据传输,而且不需要关注内核函数调用参数的设置。原创 2015-05-31 21:57:36 · 6730 阅读 · 2 评论 -
基于SVM与人工神经网络的车牌识别系统
最近研究了支持向量机(Support Vector Machine,SVM)和人工神经网络(Artifical Neural Network,ANN)等模式识别理论,结合一些书籍和网上的资料,将两种思想运用到车辆的车牌识别算法中。车辆识别结合了多种图像处理技术,如视频监控、图像检测、图像分割和光学字符识别。原创 2015-05-22 17:04:13 · 26808 阅读 · 46 评论 -
[转][译]一种度量准则:推土机距离Earth Mover's Distance(EMD)
在计算机科学与技术中,地球移动距离(EMD)是一种在D区域两个概率分布距离的度量,就是被熟知的Wasserstein度量标准。不正式的说,如果两个分布被看作在D区域上两种不同方式堆积一定数量的山堆,那么EMD就是把一堆变成另一堆所需要移动单位小块最小的距离之和。原创 2015-05-21 14:58:48 · 12844 阅读 · 1 评论 -
离散序列的一致性度量方法:动态时间规整(DTW)
动态时间规整:Dynamic Time Warping(DTW),是一种衡量两个离散时间序列相似度的方法,主要特点是在序列长度不一或x轴无法完全对齐的情况下,用满足一定条件的的时间规整函数描述两者之间的时间对应关系。DTW算法在各种模式匹配任务中被广泛使用,如语音识别、动态手势识别和信息检索等中。原创 2015-05-15 18:55:24 · 14910 阅读 · 3 评论 -
OpenCV+Qt:基于PCA主成分分析的人脸识别例程
在模式识别领域中,PCA是一种常用的数据集降维手段,在此基础上,保留数据集中对方差贡献最大的特征从而进行模式分类。OpenCV中提供PCA的类,因此可以方便地使用PCA来进行人脸识别研究。在学习了网上的相关实现和代码,在以下开发平台跑通了代码:win8.1+OpenCV2.4.9+Qt5.3.2。原创 2015-05-01 14:50:34 · 7185 阅读 · 0 评论 -
OpenCV2学习笔记(十九):Kalman滤波算法
在视频跟踪处理中,预测目标运动轨迹是一项基本任务。目标运动状态估计的目的有三个:一是对目标过去的状态进行平滑;二是对目标现在的运动状态进行滤波;三是对目标未来的运动状态进行预测。物体的运动状态一般包括目标位置、速度、加速度等。著名的Kalman滤波技术就是其中一种,这是一种线性系统估计技术。而OpenCV中自带了kalman滤波的代码和例程。原创 2015-04-26 20:09:52 · 9483 阅读 · 0 评论 -
图像的仿射变换与AffineTransform类
在图像匹配研究领域中,仿射变换图像是一个重要的研究对象,因此需要对仿射变换在图像中的操作有基本认识。学习了网上一些博客和教程,简单记录了一下:图像的仿射变换主要包含以下一系列操作:翻转(Flip)、旋转(Rotation)、平移(Translation)、缩放(Scale)和错切(Shear)。AffineTransform类描述了一种二维仿射变换的功能,它是一种二维坐标到二维坐标之间的线性变换。原创 2015-05-02 19:26:31 · 7721 阅读 · 1 评论 -
OpenCV2学习笔记(十八):显示视频流的帧率
在视频上实时显示帧速,即FPS。FPS是Frame Per Second的缩写,中文意思是每秒帧数。开发平台为VS2013+OpenCV2.4.9。FPS是测量用于保存、显示动态视频的信息数量。通俗来讲就是指每秒变化的画面数。在计算FPS时,需要使用的主要函数有getTickCount、getTickFrequency。而在输出图像上显示FPS水印则是使用函数putText。原创 2015-04-05 08:56:43 · 22593 阅读 · 6 评论 -
OpenCV2学习笔记(七):使用Canny算子检测轮廓
在:http://blog.csdn.net/liyuefeilong/article/details/43927909 中,主要讨论了使用sobel算子和拉普拉斯变换进行边缘检测。其中主要使用了了对梯度大小进行阈值化以得到二值的边缘图像的方法。在一幅图像中,边缘往往包含着重要的视觉信息,因为它们描绘出图像元素的轮廓。这里使用Canny算子检测轮廓。原创 2015-02-28 22:27:41 · 14940 阅读 · 0 评论 -
OpenCV2学习笔记(十六):Stitching图像拼接
图像拼接stitching是OpenCV2.4.0出现的一个新模块,所有的相关函数都被封装在Stitcher类当中。这里演示一个Stitch类的实例。关于Stitcher类的详细介绍,可以参考: http://docs.opencv.org/2.4.2/modules/stitching/doc/high_level.html?highlight=stitcher#stitcher。原创 2015-03-26 11:24:46 · 13134 阅读 · 8 评论 -
图像的阈值分割(Optimum Thresholding)
摘 要:本实验主要实现最优阈值。图像分割就是把图像中具有特殊涵义的不同区域分开来,这些区域是互不相交的,每个区域都满足特定区域的一致性。图像分割是图像处理中的重要问题,也是计算机视觉研究中的一个经典难题。计算机视觉中的图像理解包括目标检测、特征提取和目标识别等,都依赖于分割的质量。阈值法是一种简单有效的分割方法,其最大特点就是计算简单,因此也得到了广泛的应用。原创 2015-02-03 17:45:14 · 34441 阅读 · 0 评论 -
形态学及其他集合运算(Morphological and Other Set Operations)
摘 要:本实验主要实现形态学图像处理。主要验证图像集合的交并补运算、膨胀和腐蚀处理并利用图像集合的运算,实现形态学边界抽取算法并进行特征边界抽取。同时将膨胀和腐蚀扩展至灰度图像,编写函数实现灰度图像形态学梯度公式和Tophat变换公式,最后对形态学梯度变换和Tophat变换后的输出图像进行比较。原创 2015-02-01 20:39:51 · 5086 阅读 · 0 评论 -
参数维纳滤波(Parametric Wiener Filter)
摘 要:本实验主要使用维纳滤波法(又名为最小均方误差滤波)实现图像复原与重建。首先我们通过对一幅图像加入运动污损滤波和高斯噪声,然后从噪声中提取出原始图像信号。在各种估计方法中,维纳滤波是一种最基本的方法,相比起逆滤波,它更适用于从噪声中分离出有用信号的图像。原创 2015-01-30 14:58:48 · 16826 阅读 · 0 评论 -
二维傅里叶变换和滤波(Two-Dimensional Fourier Transform and Filtering)
摘 要:本实验开发了一个2-D FFT程序包,主要实现图像的二维快速傅里叶变换、图像傅里叶频谱计算及高斯低通滤波器。傅里叶变换是数字图像处理技术的基础,是将时域信号分解为不同频率的正弦和或余弦和的形式,对图像的信息特征进行提取和分析。低通滤波是一种滤除图像中高频成份的工具,对一幅图像进行傅里叶变换后,使用低通滤波器将图像的低频像素保留,高频像素丢掉。而图像的高频部分往往代表图像的边缘或细节,因此低通滤波器广泛运用于图像的模糊处理。原创 2015-01-27 13:47:20 · 29499 阅读 · 4 评论 -
噪声去除的中值滤波方法(Noise Reduction Using a Median Filter)
摘 要:本实验主要实现图像的加噪和去噪。模拟数字图像的噪声主要由于噪声广泛存在于图像的产生和传输过程。图像传感器的工作情况受各种因素的影响,如图像的获取中的环境条件和传感器自身的质量。图像在传输过程中主要由于所用的传输信道的干扰而受到噪声污染。在本次实验的加噪过程中使用的是椒盐噪声,有时也被称为脉冲噪声、散粒噪声或尖峰噪声。脉冲噪声主要表现在成像中的短暂停留中,例如错误的开关操作。去噪过程中采用了3×3中值滤波算法。中值滤波法是一种非线性平滑技术,它将每一像素点的灰度值设置为该点某邻域窗口内的所有像素原创 2015-01-28 10:12:45 · 27276 阅读 · 1 评论 -
图像灰度级减少及基本缩放(Reducing the Number of Gray Levels, Zooming and Shrinking Images)
摘 要:本实验分为三部分:编写一个以2的幂次方将一幅图像的灰度级数从256减少到2;编写一个基于像素复制法的图像缩放程序,要求缩放因子为整数;编写一个基于双线性插值法的图像缩放程序,要求输入参数为输出图像的水平和垂直方向的像素数。并使用这三个函数对给定图像进行缩小再放大操作,对比输出图像和原图的差异。该实验是在MATLAB 2014a平台上实现。原创 2015-01-26 11:18:24 · 8727 阅读 · 3 评论 -
Win8.1下OpenCV2.4.9+Qt5.3.2开发环境搭建
Win8下opencv2.4.9+Qt5.3.2编译环境的搭建原创 2015-02-05 13:47:52 · 4299 阅读 · 1 评论 -
OpenCV2学习笔记(三):形态学及边缘角点检测
形态学滤波理论于上世纪90年代提出,目前被广泛用于分析及处理离散图像。其基本运算有4个: 膨胀、腐蚀、开启和闭合, 它们在二值图像和灰度图像中各有特点。基于这些基本运算还可推导和组合成各种数学形态学实用算法,用它们可以进行图像形状和结构的分析及处理,包括图像分割、特征抽取、边缘检测、 图像滤波、图像增强和恢复等。原创 2015-02-20 12:26:34 · 7046 阅读 · 2 评论 -
OpenCV2学习笔记(四):两种图像分割方法比较
此次研究两种图像分割法,分别是基于形态学的分水岭算法和基于图割理论的GrabCut算法。OpenCV均提供了两张算法或其变种。鉴于研究所需,记录一些知识点,开发平台为OpenCV2.4.9+Qt5.3.2。原创 2015-02-23 16:16:44 · 20013 阅读 · 4 评论 -
OpenCV2学习笔记(十五):利用Cmake快速查找OpenCV函数源码
在使用OpenCV时,在对一个函数的调用不是很了解的情况下,通常希望查到该函数的官方声明。而如果想进一步研究OpenCV的函数,则必须深入到源码。在VS中我们可以选中想要查看的OpenCV函数, 点击右键-> 转到定义,我们可以很清楚地了解到函数的简单声明,但是并没有给出源代码。这是因为openCV将很多函数被加入了函数库,并被编译成了dll,所以只能看到函数申明,没法看到源代码。这里利用Cmake导出可以在VS中快速查找的CpenCV函数源码!原创 2015-03-18 20:07:12 · 3708 阅读 · 0 评论 -
OpenCV2学习笔记(十四):基于OpenCV的图片卡通化处理
学习OpenCV已有一段时间,除了研究各种算法的内容,在空闲之余,根据书本及资料的引导,尝试结合图像处理算法和日常生活联系起来,首先在台式机上(带摄像头)完成一系列视频流处理功能,开发平台为Qt5.3.2+OpenCV2.4.9。本次试验实现的功能主要有:调用摄像头捕获视频流;将帧图像转换为素描效果图片;将帧图像卡通化处理;简单地生成“怪物”形象;人脸肤色变换。原创 2015-03-17 23:32:35 · 11150 阅读 · 2 评论 -
OpenCV2学习笔记(六):检测图像颜色小程序
设计一个界面,用来检测一幅图像的颜色分布,开发平台为Qt5.3.2+OpenCV2.4.9。该程序的主要步骤如下: 1. 载入图像,选定一种颜色; 2. 设定阈值,在该值范围内判定像素属于预设的颜色; 3. 在界面的Label中输出结果。原创 2015-02-26 19:46:18 · 7106 阅读 · 0 评论 -
直觉模糊C均值聚类与图像阈值分割
基于直觉模糊C均值聚类算法的图像阈值分割原创 2015-02-14 11:19:16 · 30002 阅读 · 5 评论 -
OpenCV2学习笔记(二):图像的直方图
图像增强、直方图均衡化、基于对比度受限自适应直方图均衡化算法、彩色图像的直方图均衡方法原创 2015-02-12 13:47:25 · 6600 阅读 · 3 评论 -
OpenCV2学习笔记(一):图像的基本操作
基于Qt5+OpenCV2.4.9的图像阈值分割原创 2015-02-09 18:07:18 · 4486 阅读 · 0 评论 -
基于半色调技术的图像打印程序(Image Printing Program Based on Halftoning)
摘 要:本实验采用半色调技术对图像进行打印和显示。使用实验后面所给出了用点模式近似表示的0到9,10个灰度级来表示一张图片。每一个灰度级用一个3*3的黑白点模式表示。用3*3全黑点近似表示灰度级为0的黑色灰度级,3*3全白点近似表示灰度级为9的白色灰度级。其它的点模式表示这二者之间的灰度级。由于用3*3个像素点代替原来一个像素点,因此在有限的打印面积上需要考虑图像尺寸的大小,故需要对输入图像进行预处理。在此基础上,编写一个生成尺寸为256*256大小的灰度渐变测试图像的程序。输出图像第1列像素灰度为0原创 2015-01-25 17:47:23 · 6615 阅读 · 5 评论