- 博客(136)
- 资源 (4)
- 收藏
- 关注
原创 基于亚像素的边缘检测方法
1 引言 数字图像的边缘检测是图像分割、目标识别、区域形状提取等图像处理领域的重要基础。在进行图像理解和分析时,第一步往往是边缘检测。目前边缘检测已经成为机器视觉领域最活跃的课题之一,其研究具有非常重要的理论意义和实际应用价值。传统的边缘检测方法的检测精度最高只能达到一个像素级,但是,随着科学技术的飞速发展,工业检测等应用对精确度的要求不断提高,传统的像素级边缘检测方法已经不能满
2017-03-20 13:45:32
34992
1
原创 Opencv图像识别从零到精通(37)----KNN算法
一 KNN简介 K最近邻(k-Nearest Neighbor,KNN)分类算法,该方法的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。你可以简单的理解为由那离自己最近的K个点来投票决定待分类数据归为哪一类。 KNN算法的过程为: 选择一种距离计算方式, 通过数据所有的特征计算新数据与已
2017-03-03 12:36:39
8835
1
原创 Matlab GUI 图像识别与图像处理
好久没有写博客,发现要做的东西总是那么多,学的知识越来越多,自己也很快就要毕业了,这种校园学习的时间以后都不会再有了,圣诞节的今天,小伙伴出去Hai了,自己默默的在电脑前,设计着自己的东西,默默的敲着代码。 从入门到精通,这段路似乎还有很长的道路。还记得自己和师兄的学术争吵,代码文档的相互嫌弃,如今就剩下了孤苦的我,没有了那种争先学习的气氛,不知道明年去工作,那里的环境又是怎么样,会遇到
2016-12-25 12:07:29
11659
原创 out of memory的解决方案
在使用大矩阵的时候,会遇到out of memory的问题,这个让人很纠结,解决的方法一个是从电脑方面,一个就是自身的程序优化问题。从网站各种资料和官方的help中总结了一些。 首先要知道matlab是如何存储矩阵的,Matlab中矩阵是以Block,也就是块的形式存储的。也就是说,当Matlab在为即将存储的矩阵划分块时,如果没有相应大小的连续内存,即使实际内存没有被完全使用,他还是
2016-10-11 09:38:54
17574
原创 卷积神经网络
卷积神经网络 自今年七月份以来,一直在实验室负责卷积神经网络(Convolutional Neural Network,CNN),期间配置和使用过theano和cuda-convnet、cuda-convnet2。为了增进CNN的理解和使用,特写此博文,以其与人交流,互有增益。正文之前,先说几点自己对于CNN的感触。先明确一点就是,Deep Learning是全部深度学
2016-09-23 17:09:32
4646
原创 聚类分析matlab
感觉自己的业余时间好像越来越少了,实习和学校的工作看来必然会带来一定的冲突,需要适应这个节奏的变化啊,加油。一、理论 聚类就是把东西聚在一起,那一定有一定的规则,相似等,后面会给出。聚类与分类的不同就是,聚类所要求的划分的类是未知的。 聚类是这么定义的:将数据分类到不同的类或者簇这样的一个过程,所以同一个簇中的对象有很大的相似性,而不同簇之间的对象很大的相异性
2016-09-05 15:09:14
80765
2
原创 Opencv图像识别从零到精通(36)----DFT离散傅里叶变换
这篇就是图像的时域到频域的开始,也是信号处理中比较常见的傅立叶变换。一、傅立叶图像 对一张图像使用傅立叶变换就是将它分解成正弦和余弦两部分。也就是将图像从空间域(spatial domain)转换到频域(frequency domain)。 这一转换的理论基础来自于以下事实:任一函数都可以表示成无数个正弦和余弦函数的和的形式。傅立叶变换就是一个用来将函数分解的工具。 2维图像的傅立叶
2016-08-27 17:40:48
10621
原创 Opencv图像识别从零到精通(35)---SURF
SIFT在前面已经说过了,可以说在实现过程中是精益求精,用了各种手段来删除不符合条件的特征点,同时也得到了很好的效果但是实时性不高,于是就有了SURF(speeded up robusr features).SURF是一种尺度,旋转不变的detector和descriptor.最大的特点是快!在快的基础上保证性能(repeatability,distinctiveness和robustne
2016-08-25 17:09:59
12608
原创 Opencv图像识别从零到精通(34)---SIFI
一、理论知识 Scale Invariant Feature Transform,尺度不变特征变换匹配算法,对于算法的理论介绍,可以参考这篇文章http://blog.youkuaiyun.com/qq_20823641/article/details/51692415,里面很详细,可以更好的学习。这里就不多介绍。后面就挑选重点的来说二、SIFT 主要思想 SIFT算法是一种提取局部特征的
2016-08-24 15:11:49
5092
原创 Opencv图像识别从零到精通(33)----moravec角点、harris角点
一、角点 图像处理和与计算机视觉领域,兴趣点(interest points),或称作关键点(keypoints)、特征点(feature points) 被大量用于解决物体识别,图像识别、图像匹配、视觉跟踪、三维重建等一系列的问题。我们不再观察整幅图,而是选择某些特殊的点,然后对他们进行局部有的放矢的分析。如果能检测到足够多的这种点,同时他们的区分度很高,并且可以精确定位稳定的特征,那
2016-08-22 12:23:57
7027
原创 Opencv图像识别从零到精通(32)----直方图对比,模版匹配,方向投影
0、预备知识归一化就是要把需要处理的数据经过处理后(通过某种算法)限制在你需要的一定范围内。函数原型:void normalize(InputArray src,OutputArray dst, double alpha=1,doublebeta=0, int norm_type=NORM_L2, int dtype=-1, InputArray mask=noArray() )
2016-08-20 15:07:09
7865
原创 Opencv图像识别从零到精通(31)----图像修补,分离合并通道
一、图像修复简介 图像修复是图像复原中的一个重要内容,其目的是利用图像现有的信息来恢复丢失的信息。可用于旧照片中丢失信息的恢复,视频文字去除以及视频错误隐藏等。简言之,图像修复就是对图像上信息缺损区域进行信息填充的过程,其目的就是为了对有信息缺损的图像进行复原,并且使得观察者无法察觉到图像曾经缺损或者已经修复 图像修复技术简单来说,就是利用那些被破坏区域的边缘,即是
2016-08-19 17:29:45
17624
1
原创 Opencv图像识别从零到精通(30)---重映射,仿射变换
一、序言面对图像处理的时候,我们会旋转缩放图像,例如前面所提高的resize 插值改变,也是几何变换:几何运算需要空间变换和灰度级差值两个步骤的算法,像素通过变换映射到新的坐标位置,新的位置可能是在几个像素之间,即不一定为整数坐标。这时就需要灰度级差值将映射的新坐标匹配到输出像素之间。最简单的插值方法是最近邻插值,就是令输出像素的灰度值等于映射最近的位置像素,该方法可能会产生锯齿。
2016-08-17 17:09:01
7541
原创 Opencv图像识别从零到精通(29)-----图像金字塔,向上上下采样,resize插值
金字塔的底部是待处理图像的高分辨率表示,而顶部是低分辨率的近似。我们将一层一层的图像比喻成金字塔,层级越高,则图像越小,分辨率越低 一、两个金字塔高斯金字塔(Gaussianpyramid): 用来向下采样,主要的图像金字塔拉普拉斯金字塔(Laplacianpyra
2016-08-16 15:50:53
9883
原创 Opencv图像识别从零到精通(28)----Kmeans
K-means算法算是个著名的聚类算法了,不仅容易实现,并且效果也不错,训练过程不需人工干预,实乃模式识别等领域的居家必备良品啊,今天就拿这个算法练练手。属于无监督学习中间接聚类方法中的动态聚类流程:1.随机选取样本中的K个点作为聚类中心2.计算所有样本到各个聚类中心的距离,将每个样本规划在最近的聚类中3.计算每个聚类中所有样本的中心,并将新的中心代替原来的中心4.检查
2016-08-15 16:59:07
3725
原创 Opencv图像识别从零到精通(27)---grabcut
图割graph cuts ----grad cut Graph Cuts算法是用来确定网络流的最小分割,即寻找一个容量最小的边的集合,去掉这个集合中的所有边就可以阻挡这个网络了。需要注意的是,通常所说的Graph Cuts算法是指的采用最大流-最小分割来优化的模型,其它的Graph Cutting算法一般用graphpartitioning这个名词来代替。 首先还得先
2016-08-14 19:51:48
5100
原创 Opencv图像识别从零到精通(26)---分水岭
分水岭是区域分割三个方法的最后一个,对于前景背景的分割有不错的效果。 分水岭分割方法,是一种基于拓扑理论的数学形态学的分割方法,其基本思想是把图像看作是测地学上的拓扑地貌,图像中每一点像素的灰度值表示该点的海拔高度,每一个局部极小值及其影响区域称为集水盆,而集水盆的边界则形成分水岭。分水岭的概念和形成可以通过模拟浸入过程来说明。在每一个局部极小值表面,刺穿一个小孔,然后把整个模型慢慢
2016-08-13 21:39:30
18065
原创 Opencv图像识别从零到精通(25)------区域分裂与合并
区域分割一般认为有漫水填充,区域分裂与合并,分水岭,这篇是中间的区域分裂和合并。 区域分裂合并算法的基本思想是先确定一个分裂合并的准则,即区域特征一致性的测度,当图像中某个区域的特征不一致时就将该区域分裂成4 个相等的子区域,当相邻的子区域满足一致性特征时则将它们合成一个大区域,直至所有区域不再满足分裂合并的条件为止. 当分裂到不能再分的情况时,分裂结束,然后它将查找相邻
2016-08-12 14:24:31
16958
原创 Opencv图像识别从零到精通(24)------漫水填充,种子填充,区域生长、孔洞填充
可以说从这篇文章开始,就结束了图像识别的入门基础,来到了第二阶段的学习。在平时处理二值图像的时候,除了要进行形态学的一些操作,还有有上一节讲到的轮廓连通区域的面积周长标记等,还有一个最常见的就是孔洞的填充,opencv这里成为漫水填充,其实也可以叫种子填充,或者区域生长,基本的原理是一样的,但是应用的时候需要注意一下,种子填充用递归的办法,回溯算法,漫水填充使用堆栈,提高效率,同时还提供了一种方式
2016-08-11 21:36:49
19675
原创 Opencv图像识别从零到精通(23)----轮廓
当看到轮廓的时候,发现没有办法具体到什么, 因为关系轮廓的东西似乎有很多,例如检测轮廓,提取轮廓,轮廓跟踪,轮廓面积,周长,标记,匹配,还有一系列的外接最小矩形,圆形,椭圆,图像矩,填充孔洞等,不得不说东西真的很好。轮廓其实最容易和边缘检测联系到一起,有很多的相同,但是我理解的是边缘是检测,是预处理,而轮廓就可能是你要用的特征。一、函数:一个是找,一个是画void findContou
2016-08-07 17:42:07
9700
原创 Opencv图像识别从零到精通(22)-----hough变换检测直线与圆
今天要看的是霍夫变换,常用用来检测直线和圆,这里是把常见的笛卡尔坐标系转换成极坐标下,进行累计峰值的极大值,确定。HoughLines,HoughLinesP,HoughCircles,三个函数,首先先看看原理,最后会用漂亮的matlab图,来回归一下,霍夫直线变换。霍夫线变换:众所周知, 一条直线在图像二维空间可由两个变量表示. 例如:在 笛卡尔坐标系
2016-08-05 15:58:38
5831
原创 Opencv图像识别从零到精通(21)-----canny算子边缘检测
最后来看看canny算子,这个是被成为最好的算子,因为过程多,有准测,后面会列出来,也是边缘检测的最后一个,所以这里作为结尾,来看看各个边缘检测的效果。边缘检测结果比较Roberts算子检测方法对具有陡峭的低噪声的图像处理效果较好,但是利用roberts算子提取边缘的结果是边缘比较粗,因此边缘的定位不是很准确。Sobel算子检测方法对灰度渐变和噪声较多的图像处理效果较好,sobel
2016-08-03 13:17:39
10216
原创 Opencv图像识别从零到精通(20)---laplace LOG DOG边缘检测
经过了上一篇的简单的边缘检测,现在来看一下二阶导数的边缘检测,分别是Laplace LOG DOG,看到他们心里还是有点遗憾,要是自己能加快一点学习的步伐,在面试的时候也许就可以轻松回答了,亲爱的你们只是来的晚了2天。希望和我一样的同学,要加快脚步,认真学习了。废话不再多说,让我看看是怎么回事。一、Laplacian Laplacian算子定义为表示成
2016-08-01 16:01:37
8932
1
原创 Opencv图像识别从零到精通(19)----Robert,prewitt,Sobel边缘检测
图像的边缘检测,是根据灰度的突变或者说不连续来检测,对于其中的算子有一阶导数和二价导数,这里先说基础的三种方法。 一梯度 首先介绍下梯度,梯度并非是一个数值,梯度严格意义上是一个向量,这个向量指向当前位置变化最快的方向,可以这么理解,当你站在一个山上,你有360°的方向可以选择,哪个方向下降速度最快(最陡峭),便是梯度方向,梯度的长度,表示为向量的长度,表
2016-07-31 17:45:44
21844
原创 Opencv图像识别从零到精通(18)-------击中击不中
在我们学习了膨胀腐蚀和基于膨胀腐蚀的变化之后,我比较喜欢的一个是击中击不中,因为喜欢所以就要单独列出来,心里总是觉得他可以有很多的用处,以后模版匹配,特征检测都会用,更深入的是,他会加深对膨胀腐蚀的理解,是一个很好的例子。下面先看一个算法步骤和原理:Hit-miss算法步骤:击中击不中变换是形态学中用来检测特定形状所处位置的一个基本工具。它的原理就是使用腐蚀;如果要在一幅图像A上找
2016-07-30 13:59:10
7518
原创 主成分分析PCA
PCA(Principal components Analysis)即主成分分析,是图像处理中经常用的降维方法,因为在图像提取相应的特征如颜色,纹理,SIFT,SURF等特征,但是一副图像中有很多个这种特征点,梅哥特征点又有一个相应的描述该特征点的128维的向量,因此需要降维,提高效率。 理解一:主成分分析(最近重构性):多指标(存在一定相关性,信息重叠)转化成少数几个线性无关综合
2016-07-29 20:04:47
10050
原创 Opencv图像识别从零到精通(17)----开运算、闭运算、顶帽、黑帽、形态学梯度、形态学角点、细化、填充
经过了上一篇的膨胀、腐蚀以后,我们就可以用他们组合起来,形成了更多的形态效果,这样就不会太多的改变原来图像的大小,总结了一下,主要包含开运算、闭运算、顶帽、黑帽、形态学梯度、形态学角点、细化、填充这些方面。1.开运算对图像进行先腐蚀后膨胀的操作就是图像的开运算。它的功能是有利于移走黑色前景下的白色小物体。2.闭运算对图像进行先膨胀后腐蚀的操作
2016-07-27 11:30:10
6249
原创 Opencv图像识别从零到精通(16)------膨胀腐蚀
形态学操作就是基于形状的一系列图像处理操作。有很多的,这里先看最简单的操作。膨胀与腐蚀(Dilation与Erosion)。能实现多种多样的功能,主要如下:消除噪声,通过低尺寸结构元素的腐蚀操作很容易去掉分散的椒盐噪声点分割(isolate)出独立的图像元素,在图像中连接(join)相邻的元素。寻找图像中的明显的极大值区域或极小值区域求出图像的梯度(1)腐蚀操作
2016-07-26 19:12:02
4842
原创 Opencv矩阵操作copyTo convertTo clone reshape
矩阵操作(拷贝、洗牌、局部访问): src.copyTo(dst)把src矩阵中的数据拷贝到dst。 src.convertTo(dst, type, scale, shift)缩放并转换到另外一种数据类型:dst:目的矩阵type:需要的输出矩阵类型,或者更明确的,是输出矩阵的深度,如果是负值(常用-1)则输出矩阵和输入矩阵类型相同
2016-07-25 12:16:08
3082
原创 Opencv图像识别从零到精通(15)-----阈值分割、固定阈值Threshold、自适应阈值分割adaptiveThreshold、OSTU大津法
阈值分割是一种区域分割技术,将灰度根据主观愿望分成两个或者多个灰度区间,利用图像中背景和目标物体的灰度上的差异,旋转一个合适的阈值进行分割。一般的分割有全局分割和局部分割,这是不同的思路,在Opencv中给出了threshold(),adapativeThreshold(),这两个函数中的tpye会给出很多的方法double threshold(InputArray src, Output
2016-07-24 18:24:25
14475
1
原创 Opencv图像识别从零到精通(14)-----线性滤波和非线性滤波
一,噪声的介绍和卷积 二、各个滤波函数的解读,定义与源代码 三、综合所有的滤波,加滑动条控制核大小来blur 四、Matlab 辅助表达 一,噪声的介绍 图像噪声是图像在摄取或传输时所受的随机信号干扰,是图像中各种妨碍人们对其信息接受的因素。很多时候将图像噪声看成是多维随机过程,因而描述噪声的方法完全可以借用随机过程的描述,即用其概率分布函数和概
2016-07-23 15:48:02
5296
1
原创 EndNote安装教程与使用教程 关联加载word
针对EndNotex7初学安装和插入文献教程,WIN7 64位亲测可以使用,其他版本参考变通使用,未提及问题请自寻搜索。a) 解压EndNote X7准备工作,b) word关联EndNoteX7c) 下载文献到EndNote X7d) 插入文献到论文e) 手动修改和自动模版修改(懒人可以直接看自动模版) 一、 解
2016-07-22 12:49:46
102264
4
原创 Opencv图像识别从零到精通(13)----点线圆矩形与鼠标事件
图像中不可少的元素就是点、线、圆、椭圆、矩形,多边形,同时这些也是物体的特征组成单位,在图像识别中必不可少。所以要首先去认识这个元素怎么定义和使用,同时鼠标是电脑的窗口,我们很多的处理都会用到鼠标。本文主要有下面三个部分: (1) 点、线、圆、椭圆、矩形的基础应用 (2)点、线、圆、椭圆、矩形的进阶应用 (3)鼠标事件一、点、线、圆、椭圆、矩形的基础应
2016-07-22 08:14:00
5706
1
原创 Opencv图像识别从零到精通(12)-----滑动条控制直方图、对比度、亮度、图像相加
经过前面的学习,有了对比度,直方图的基础,所以就想着用这滑动条做一个综合的实例,用滑动条去控制直方图,去滑动条控制对比度和亮度,用滑动条控制融合,也是对基础的一点提高,其中还有很多值得改进的,可以动态显示结果之类的,这里就不多介绍。以后有机会再优化。 学习之前,要知道几个函数的使用方法,其他的出现的函数或者用法,请参考前面的基础例子-----------------------
2016-07-21 11:19:44
3523
原创 Opencv图像识别从零到精通(11)---一个窗口多图显示
前面介绍了如何批量的读取图片,从而也会有批量的显示一堆图片,那么在平时我们显示图片的时候,会发现都是一个图片一个窗口,会出来很多,这时候就会想到matlab中我们经常会使用subplot显示多张图片在一个窗口,之前http://blog.youkuaiyun.com/qq_20823641/article/details/51910066这篇文章也提供了一种方法,可以参考一下,经过进一步学习,从简单到复杂,再
2016-07-20 11:56:35
6184
原创 Opencv 注意事项,很有帮助
1. 得到Mat类型img的size,可以使用函数img.size(),注意这里有括号。但是在需得到img的行和列时,不需要使用括号,即使用img.rows和img.cols. 2. 已经定义好了img为Mat型,但是没有初始化,在后面程序的任何一个位置可以使用下面的代码初始化img,比如img=Mat(***1,***2),其中***1是矩形区域的大小,***2是数组内数据类
2016-07-19 17:05:53
2880
原创 Opencv图像识别从零到精通(10)-----直方图均衡化与直方图拉伸
一、直方图均衡化 直方图均衡化是灰度变换的一个重要应用,广泛应用在图像增强处理中,它是以累计分布函数变换为基础的直方图修正法,可以产生一幅灰度级分布具有均匀概率密度的图像,扩展了像素的取值动态范围。许多图像的灰度值是非均匀分布的,其中灰度值集中在一个小区间内的图像是很常见的,直方图均衡化是一种通过重新均匀地分布各灰度值来增强图像对比度的方法,经过直方图均衡化的图像对二值化阈值
2016-07-19 16:32:55
12046
原创 Opencv图像识别从零到精通(9)----对比度亮度改变
一张图像来说,会有不同的亮暗程度,很多时候都要增强一下,增强的方法有很多,从大量可以说是线性变换和非线性变换,当然这是说空间域的,频率域的暂时不考虑。线性变换增强,也是对点的操作,如下图两种常用的点过程(即点算子),是用常数对点进行 乘法 和 加法 运算:两个参数 0" style="border:0px; vertical-align:mid
2016-07-18 12:03:38
4967
原创 Opencv之saturate_cast防止数据溢出
在OpenCV学习中经常看见saturate_cast的使用,下面的代码会展示它的作用,这个功能实现的是两个图像融合,作者提供了saturate_case的作用,同时比较了两个方法的运行时间,后面会给出代码和结果。也可以原文 http://blog.youkuaiyun.com/mjlsuccess/article/details/12401839一、staturate_cast的原理大致的原
2016-07-18 09:55:09
4394
matlab GUI图像处理图像学习
2016-04-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人