前言 SVM算法在在1995年正式发表,在针对中小型数据规模的分类任务上有着卓越的效果,同时有着完整的理论证明,在20世纪末的几年和21世纪初的10年完胜神经网络,吴恩达在其2003年的《Machien learning》公开课上用两节课的时间对其进行讲解,而神经网络讲解了20min左右。就是这个算法把神经网络按在地上摩擦了大概15年的时间,直到深度学习的兴起。但即便这样,现在SVM算法依旧被广
写在前面 Kalman滤波的理论是比较有深度的,涉及到很多公式推导,尤其是用到了很多线性代数的知识。 这篇博客是博主基于工作内容实现的,所以主要偏向于应用,代码也是经过无数次验证了的,是比较稳定的,大家可以放心使用,有问题可以留言交流。 关于更深层次的理论推导,这里将不会涉及,但是会推荐几个写的不错的博客供大家参考。 Kalman滤波基本原理 思想 Kalman的思想还
重命名工具有很多,总体来说大同小异,要是能熟练一个,还是很能提高效率的。今天给大家介绍一款功能强大、免费的重命名工具:ReNamer Lite。别被它的名字Lite给欺骗了,功能非常强大。 下载地址:http://www.den4b.com/products/renamer 支持简体中文 支持Windows 98以后的系统 支持正则表达式和PascalScript 以
Datawhale 计算机视觉基础-图像处理(上)-Task04 图像滤波 4.1 简介 图像的实质是一种二维信号,滤波是信号处理中的一个重要概念。在图像处理中,滤波是一种非常常见的技术,它们的原理非常简单,但是其思想却十分值得借鉴,滤波是很多图像算法的前置步骤或基础,掌握图像滤波对理解卷积神经网络也有一定帮助。 4.2 学习目标 了解图像滤波的分类和基本概念
写在前面 Kalman滤波的理论是比较有深度的,涉及到很多公式推导,尤其是用到了很多线性代数的知识。 这篇博客是博主基于工作内容实现的,所以主要偏向于应用,代码也是经过无数次验证了的,是比较稳定的,大家可以放心使用,有问题可以留言交流。 关于更深层次的理论推导,这里将不会涉及,但是会推荐几个写的不错的博客供大家参考。 Kalman滤波基本原理 思想 Kalman的思想还是很简洁的, 标
Datawhale 计算机视觉基础-图像处理(上)-Task02 几何变换 2.1 简介 该部分将对基本的几何变换进行学习,几何变换的原理大多都是相似,只是变换矩阵不同,因此,我们以最常用的平移和旋转为例进行学习。在深度学习领域,我们常用平移、旋转、镜像等操作进行数据增广;在传统CV领域,由于某些拍摄角度的问题,我们需要对图像进行矫正处理,而几何变换正是这个处理过程的基础,因此了解和学习几何变
Datawhale 计算机视觉基础-图像处理(上)-Task05 图像分割/二值化 5.1 简介 该部分的学习内容是对经典的阈值分割算法进行回顾,图像阈值化分割是一种传统的最常用的图像分割方法,因其实现简单、计算量小、性能较稳定而成为图像分割中最基本和应用最广泛的分割技术。它特别适用于目标和背景占据不同灰度级范围的图像。它不仅可以极大的压缩数据量,而且也大大简化了分析和处理步骤,因此在
写在前面 Matlab版代码:https://blog.csdn.net/weixin_40647819/article/details/89603660 最近刚好写到了直方图均衡算法,因为之前用到过图像增强,就大致地再多了解了一下,看到了POSHE算法,这个算法也算是比较经典的吧,有一些它的优势。其实这篇论文是很老的论文了,是韩国人提出的,目前看来可能意义不大,但是我看了一下引用情况,中文论
写在前面 POSHE算法原理解读及c++代码实现请看:https://blog.csdn.net/weixin_40647819/article/details/88416512 这次用MATLAB实现。 代码 git 下载地址:https://github.com/2209520576/Image-Processing-Algorithm/tree/master/Grayscale%
写在前面 接着上次的博客写,上次已经介绍完了POSHE部分,也为这次写BERF做了一些铺垫。在这次正式开始之前,还是先放两张图片,以说明执行BERF的必要性: 仅执行POSHE
Roberts算子边缘检测原理及实现 写在前面我们知道,进行边缘检测有两种方法:一阶导数的极值、二阶导数的过零点。 Robert算子是一种一阶微分算子,而且Robert算子是第一个边缘检测算子,提出者是Lawrence Roberts in 1963。 从这篇博客开始,会陆续介绍几种经典的边缘检测算子。先附上各种边缘检测算法的优缺点: 原理Roberts算子是一种斜向偏差分的梯度计算方
主要把图像处理的一部分经典基础算法梳理并实现了一遍,主要是用VS2013+OpenCV3.1.0做的。 主要目的:一是为了把基础巩固一下,以便更高效地看论文;二是为了工作基础。 因为以前在学习和研究的过程中发现自己基础不牢,缺乏对图像处理理论的系统认识。比如看论文时,遇到很多基础的小点都得去查,发现很多地方好像都是沟沟坎坎;因为知识缺乏系统性,所以思维很局限,没办法展开和联想,被作者牵着走,感
最近老师布置了一个边缘检测的作业,我借此机会详细学习了一下canny算子,在此进行总结,并分别给出OpenCV代码和MATLAB代码,自己水平有限,若有错误或者更好的编程方法,请广大网友留言,一定虚心学习。好了废话少说,直接开始吧。 基本原理 须满足条件:抑制噪声;精确定位边缘。从数学上表达了三个准则[信噪比准则(低错误率)、定位精度准则、单边缘响应准则],并寻找表达式的最佳解。属于先
背景介绍及原理 前面介绍了OTSU算法和最大熵算法,但这两种算法都属于全局阈值法,所以对于某些光照不均的图像,这种全局阈值分割的方法会显得苍白无力,如下图: 显然,这样的阈值处理结果不是我们想要的,那么就需要一种方法来应对这样的情况。 这种办法就是自适应阈值法(adaptiveThreshold),它的思想不是计算全局图像的阈值,而是根据图像不同区域亮度分布,计算其局部阈值,所以对于图像
写在前面 前面介绍了OTSU算法,对于阈值分割法,不得不介绍另外一种较为突出的算法——最大熵阈值分割法(KSW熵算法)。 最大熵阈值分割法和OTSU算法类似,假设将图像分为背景和前景两个部分。熵代表信息量,图像信息量越大,熵就越大,最大熵算法就是找出一个最佳阈值使得背景与前景两个部分熵之和最大。 原理 由于和OTSU算法类似,所以原理上就不再赘述和推导,言简意赅。 熵的
写在前面 引导滤波是何恺明读博士的时候提出来的一种去噪保边算法,很有名。作者其主页上给出了该算法的Matlab实现和原文。而且他提出的基于暗通道去雾算法技惊四座,获CVPR2009最佳论文(膜拜),近几年在CV领域的成果也相当丰硕,关于他的研究动态,可以访问 http://kaiminghe.com/。 优点: 1、应用面很广、很广; 2、能够克服双边滤波的梯度翻转现象,在滤波后图像的细
写在前面 前面写了OTSU算法、最大熵算法、自适应阈值法,这些都是基于阈值的分割算法。 今天写一下基于区域的分割算法,其中最为有名和经典的就是区域生长算法。值得说明的是:OpenCV没有提供区域生长算法的API。 优点:基本思想相对简单,通常能将具有相同特征的联通区域分割出来,并能提供很好的边界信息和分割结果。在没有先验知识可以利用时,可以取得最佳的性能,可以用来分割比较复杂的图象,如自然景
写在前面 双边滤波是一种非线性滤波,能够达到去噪保边的效果。相比高斯滤波,双边滤波多了一种掩膜,也就是还考虑了灰度相似性,所以双边滤波是结合图像的空间邻近度和像素值相似度的一种折衷处理。 先看看对比效果:wsize=23*23, sigma(space)=10,sigma(color)=35
写在前面 Sobel算子同样是一种一阶微分算子,它的卷积算子和Prewitt算子非常类似,仅仅是系数不同,但Sobel算子对于像素位置的影响做了加权,与Prewitt算子、Roberts算子相比效果更好。 优点对边缘定位较为准确,能较好地处理灰度渐变和噪声较多的图像,计算简单,可分别计算水平和垂直边缘,如EasyPR用其定位车牌。 原理首先我们看Sobel算子: 我们发现:相比Pr
写在前面 首先介绍一下YUV颜色空间,YUV(亦称YCrCb)是被欧洲电视系统所采用的一种颜色编码方法。在现代彩色电视系统中,通常采用三管彩色摄像机或彩色CCD摄影机进行取像,然后把取得的彩色图像信号经分色、分别放大校正后得到RGB,再经过矩阵变换电路得到亮度信号Y和两个色差信号R-Y(即U)、B-Y(即V),最后发送端将亮度和两个色差总共三个信号分别进行编码,用同一信道发送出去。这种色彩的表示
写在前面 大津法(OTSU)是一种确定图像二值化分割阈值的算法,由日本学者大津于1979年提出。从大津法的原理上来讲,该方法又称作最大类间方差法,因为按照大津法求得的阈值进行图像二值化分割后,前景与背景图像的类间方差最大。 它被认为是图像分割中阈值选取的最佳算法,计算简单,不受图像亮度和对比度的影响,因此在数字图像处理上得到了广泛的应用。它是按图像的灰度特性,将图像分成背景和前景两部分。因方差
写在前面Prewitt算子同样也是一种一阶微分算子,利用像素点上下左右邻点灰度差,在边缘处达到极值检测边缘,对噪声具有平滑的作用。 原理其原理是在图像空间利用两个方向模板与图像进行邻域卷积来完成的,这两个方向模板一个检测水平边缘,一个检测垂直边缘。 相比Roberts算子,Prewitt算子对噪声有抑制作用,抑制噪声的原理是通过像素平均,因此噪声较多的图像处理得比较好,但是像素平均相当于对图像
写在前面 盒子滤波是一种非常有用的线性滤波,也叫方框滤波,最简单的均值滤波就是盒子滤波归一化的情况。 应用:可以说,一切需要求某个邻域内像素之和的场合,都有盒子滤波的用武之地,比如:均值滤波、引导滤波、计算Haar特征等等。 优势:就一个字:快!它可以使复杂度为O(MN)的求和,求方差等运算降低到O(1)或近似于O(1)的复杂度,也就是说与邻域尺寸无关了,有点类似积分图吧,但是貌似比积分图
写在前面 Canny边缘检是在在1986年提出来的,到今天已经30多年过去了,但Canny算法仍然是图像边缘检测算法中最经典、先进的算法之一。 相比Sobel、Prewitt等算子,Canny算法更为优异。Sobel、Prewitt等算子有如下缺点: 没有充分利用边缘的梯度方向。 最后得到的二值图,只是简单地利用单阈值进行处理。 而Canny算法基于这两点做了改进,提出了:
写在前面 首先,搞清楚几个概念:滤波(高通、低通、带通、带阻) 、模糊、去噪、平滑,看下图: 滤波是对输入信号进行卷积处理的一个过程,写成一个表达式的形式是这样的:滤波 = 卷积( 输入信号 ,卷积模板 ), 卷积模板/掩膜 的不同决定了不同的滤波方式,也因此产生了高通、低通、带通、带阻等基本的滤波方式。 针对低通滤波,就是保留将信号中的低频部分,抑制高频部分。要达到这个目的,可以利用均
最近老师布置了一个边缘检测的作业,我借此机会详细学习了一下canny算子,在此进行总结,并分别给出OpenCV代码和MATLAB代码,自己水平有限,若有错误或者更好的编程方法,请广大网友留言,一定虚心学习。好了废话少说,直接开始吧。 基本原理 须满足条件:抑制噪声;精确定位边缘。 从数学上表达了三个准则[信噪比准则(低错误率)、定位精度准则、单边缘响应准则],并寻找表达式的最佳解。
写在前面 应用场景:Bresenham算法是图象图形学中的经典算法,在图形渲染、图像画线都会用到它,非常非常著名。 特点:原理简单(思想很伟大),计算高效,没有浮点型运算,很适合在硬件实现。 这样一个经典、强大的算法还是十分值得学习和记录的! 算法原理 从数学的角度,建立一个坐标系,当我们在坐标系中画一条线时,这条线上的值(坐标的连续的);但是计算机中的图像是以一个一个像素组成的,是一个
写在前面 再过2个小时,就是2020年了,回顾2019,有得也必有失,只感叹时间过得真的很快,像我这样的贫困人口也要被消灭了,哈哈。2019最后这2个小时就用一篇博客作为结尾吧。 昨天CSDN上一位同学说他们要做一个豆子识别的任务,但是豆子之间的粘连比较严重,如下图,不利于豆子的识别,问我有什么方法可以解决,当然深度学习完全可以做到完美分割与识别,但是他的需求只是预处理,传统的图像处理就可以,
写在前面 从均值滤波开始,着手实现各种常用的滤波算法。均值滤波是一种线性滤波。图像的空域滤波无非分为两种,线性滤波和非线性滤波。由于我之前对线性、非线性理解不够清晰,这次就好好总结一下吧。 线性滤波:对邻域中的像素的计算为线性运算时,如利用窗口函数进行平滑加权求和的运算,或者某种卷积运算,都可以称为线性滤波。常见的线性滤波有:均值滤波、高斯滤波、盒子滤波、拉普拉斯滤波等等,通常线性滤波器之间只
github地址:https://github.com/2209520576/Image-Processing-Algorithm 首先感谢大牛博客:http://handspeaker.iteye.com/blog/1545126 https://www.cnblogs.com/yssongest/p/5303151.html
写在前面 中值滤波器是一种非线性滤波器,或者叫统计排序滤波器。 应用:中值滤波对脉冲噪声(如椒盐噪声)的抑制十分有用。 缺点:易造成图像的不连续性。 原理 原理很简单,如果一个信号是平缓变化的,那么某一点的输出值可以用这点的某个大小的邻域内的所有值的统计中值来代替。这个邻域在信号处理领域称之为窗(window)或者模板(Mask)。模板开的越大,输出的结果就越平滑,但也可能会把我们有用的
github地址:https://github.com/2209520576/Image-Processing-Algorithm 图像的缩放很好理解,就是图像的放大和缩小。传统的绘画工具中,有一种叫做“放大尺”的绘画工具,画家常用它来放大图画。当然,在计算机上,我们不再需要用放大尺去放大或缩小图像了,把这个工作交给程序来完成就可以了。下面就来讲讲计算机怎么来放大缩小图象;在本文中,我们所说的图
最近由于作业原因,试着用OpenCV实现频率域滤波,但是OpenCV中并没有像MATLAB中fftshift这样的中心化操作,所以我写了一个频率域滤波的函数,以后用频率域滤波的时候在主函数中调用即可。当然,水平有限,编写的代码并不优美,有问题请大家留言批评指正。 在这里我不介绍傅里叶变换,频率域滤波和高斯低通滤波器的原理,想必大家已经有了大概了解,本文关注于OpenCV中的代码实现。
github地址:https://github.com/2209520576/Image-Processing-Algorithm 一.写在前面 几何空间变换是图像处理中的最基础的算法,主要包括图像的旋转,平移,缩放,偏移,组合变换等等,在冈萨雷斯的数字图像处理第三版的第二章就做了相关介绍,最常用的空间坐标变换之一就是仿射变换。虽然仿射变换很基础,但作用还是很大的,例如在车牌识别的预处理
写在前面 在实际应用中,效率是不得不考虑的问题。上一篇博客介绍了均值滤波原理,这一篇就写用积分图实现的快速均值滤波吧。 还是贴一下常规与快速的效率对比吧: 下图是常规均值滤波处理一张分辨率为485*528图像的时间(模板15*15): 下图是积分图快速均值滤波处理的时间(模板15*15): 可以说加速后,速度提升很多。而且最重要的是,用积分图的快速均值滤波受模板变化的影响不大!!
写在前面先交代下代码实现的技术细节吧。 1、在最后的代码里,图像反转,对数变换方法1,对比度拉伸,比特平面分层的实现均采用指针访问像素的方式,以前总是用Opencv的at模板,但是指针最为高效,我还是用一下指针吧。当然,还有迭代器访问的方式,也是最为安全的方式,以后试一下。访问元素的方式常用的有四种,详情可以参考:https://www.cnblogs.com/ronny/p/opencv_ro
积分
粉丝
勋章
TA还没有专栏噢
第三方账号登入
看不清?点击更换
第三方账号登入
QQ 微博 微信