MathJax


  1. 朴素贝叶斯分类器

    简述 朴素贝叶斯分类器是机器学习中最基础的分类算法了,之前一直忽视这个算法,感觉这种简单利用贝叶斯公式的方法的确很Naive。但是事实上这个算法在对于特征相互独立的分类问题来说还是非常好用的。其基本思想就是在给定在各种情况下一个事件发生的先验概率的情况下,套用贝叶斯公式求出给定各种情况下给定事件发生的后验概率。思想非常简单,但是在某些情况下效果还是非常好的,值得掌握。 贝叶斯公式 贝叶斯公式很简单了,对于事件A和事件B,下面的公式显然成立: $$P(A|B)=\frac{P(A)P(B…

    Machine Learning, MathJax, Algorithm阅读全文

  2. 图像处理的Gamma矫正

    Gamma矫正这个东西听上去挺玄乎,其实特别简单。就是为了调节照相机拍摄的图像的色调,使他更加符合人眼的观测效果(主要用在)。说白了就是一种幂函数型的色调曲线,即对于每个像素的灰度$I$我们把他变成$I^{gamma}$,当然,在这之前,我们得把灰度值$I$归一化到(0,1)的范围内。 这个gamma分为大于一和小于一的情况。当他大于一的时候,很明显这个幂函数在(0,1)的区间内是下凸的,图像会变暗;当他小于一的时候,这个幂函数在(0,1)的区间内是上凸的,图像会变亮。通常认为人眼的gamma…

    OpenCV, Python, Computer Vision, MathJax阅读全文

  3. 直方图均衡化处理

    直方图均衡化方法属于图像增强的范畴,是一种对图像进行灰度级修正的方法。简而言之,就是对一个灰度图像进行处理,使他的特征更加明显。通常情况下,在对图像进行进一步的处理之前,直方图均衡化是一种对灰度进行归一化处理的好方法,而且也可以增强图像的对比度。 概述 这个方法的思路非常简单,就是我们把一个灰度图像以0-255个灰度值为横坐标,灰度对应的像素点的个数为纵坐标,构成一个灰度直方图。对于那些灰度分布非常不均衡的图像来说,我们要做的就是通过对灰度值进行一个映射,将他灰度直方图尽可能的拉伸。通常情…

    Computer Vision, Python, MathJax, OpenCV阅读全文

  4. 自适应阈值分割的Bersen算法

    最近处理到游侠网的验证码,学习了一点东西,聊作记录。 游侠网的验证码总体来讲比较简单,字符分割比较清楚。稍微有难度的地方就是处理他的阴影。 ** 示例 ** 很明显,如果直接拿这种图去跑机器学习算法的话肯定准确率不高,必然需要进行灰度或者二值化。当然,二值化是比较好的选择。 但是由于灰度分布是不均匀的,如果采用类似OTSU的全局阈值显然会造成分割不准,而局部阈值分割的Bersen算法则非常适合处理这种情况。 OTSU算法得到的图像: import cv2 from pylab imp…

    MathJax, Computer Vision, Python阅读全文

  5. 图像匹配中Harris角点特征提取

    在进行图像检测或者是识别的时候,我们需要提取出一些有特征的点加以识别,最常用的就是基于点的识别。这里所谓的点,其实就是一些重要的点,比如轮廓的拐角,线段的末端等。这些特征比较容易识别,而且不容易受到光照等环境的影响,因此在许多的特征匹配算法中十分常见。 常见的特征点提取算法有Harris算 子(改进后的Shi-Tomasi算法)、Moravec算子、Forstner算子、小波变换算子等。现在就先介绍一下最常用的Harris角点检测算法。 简介 Harris算法的思想很简单,也很容易理解。…

    OpenCV, Python, Computer Vision, MathJax阅读全文

  6. 二值形态学之开运算和闭运算

    开闭运算是二值形态学的重要部分,是对腐蚀和膨胀算法的扩展应用,在图像的去噪方面也是十分的常用。 二值开运算 定义 用结构元素B(即模板核)对图像A进行开运算,可以用符号$A\circ B$来表示,其定义式为: $A\circ B=(A\Theta B)\bigoplus B$ 所以开运算实际上就是A先被B腐蚀,再被B膨胀。 作用 很明显,开运算可以消除一些很小的背景噪点(椒盐噪声),平滑较大物体的边界而不明显改变其体积。也会磨光矩形的内边缘,以及分离一些粘连目标。 (这里所…

    Python, MathJax, Computer Vision, OpenCV阅读全文

  7. 二值形态学之击中击不中变换

    击中击不中变换(Hit Miss Transform ,HMT),是通过同时探测图像的内部和外部,进而获取更多的内外标记,体现更多信息的一个方法。他的应用有很多,特别是在图像识别以及图像细化方面。 定义 既然既要有击中也要有击不中,那么显然我们需要两个结构基元E和F,我们把这两个结构基元记为一个结构元素对$B=(E,F$。其中一个用来探测图像内部,一个用来探测图像外部。 对于给定的图像A,我们定义用B对他进行的击中击不中变换为 $A*B=(A\Theta E)\bigcap (A^c\…

    Python, Computer Vision, MathJax, OpenCV阅读全文

  8. 二值形态学之腐蚀与膨胀

    数学形态学(Mathematical morphology) 是一门建立在格论和拓扑学基础之上的图像分析学科,是数学形态学图像处理的基本理论。其基本的运算包括:二值腐蚀和膨胀、二值开闭运算、骨架抽取、极限腐蚀、击中击不中变换、形态学梯度、Top-hat变换、颗粒分析、流域变换、灰值腐蚀和膨胀、灰值开闭运算、灰值形态学梯度等。 这是我们在进行图像处理时十分常见的算法工具,在实际中有着非常广泛的应用。 下面就先介绍下二值形态学中的两个重要操作--腐蚀与膨胀。 二值腐蚀 简述 所谓二值腐…

    Python, MathJax, Computer Vision, OpenCV阅读全文

  9. 阈值分割的OTSU算法

    OTSU算法又叫最大类间方差阈值分割算法,也叫大津算法,是在1980年由日本的大津展之提出,是由最小二乘法推导而来,用于一些简单的阈值确定。 对于一个灰度图,我们有时候非常想把他用一个阈值将他的前景和背景区分开来。我们可以合理的假设为如果将图像的像素分布图画出来,那么图像上应该有两个峰,即前景色和背景色。在这两个峰之间肯定有一个谷,那么我们就可以将阈值设在这里,从而对图像达到一个良好的分割效果。 怎样确定这个阈值呢?OTSU算法说,我们可以求出用这个阈值分割后的两个图像的类间方差。对于每一个…

    Python, Computer Vision, MathJax阅读全文

  10. 最小二乘法简述

    最小二乘法,说白了其实就是解决线性回归问题的一个算法。这个算法最早是由高斯和勒让德分别独立发现的,也是当今十分常见的线性拟合算法,并不复杂。 我们常用的最小二乘法有两种,一种是普通方程表示的简单线性拟合问题,另一种是矩阵表示的高维度的线性拟合问题。 普通最小二乘法 他解决的基本问题其实就是给定一些数对$(x_1,y_1),(x_2,y_2),(x_3,y_3),....$,让你求出参数$\beta_0,\beta_1$,使得直线$y=\beta_0+\beta_1 x$能够最好的拟合这个…

    Machine Learning, MathJax阅读全文