-
朴素贝叶斯分类器
简述 朴素贝叶斯分类器是机器学习中最基础的分类算法了,之前一直忽视这个算法,感觉这种简单利用贝叶斯公式的方法的确很Naive。但是事实上这个算法在对于特征相互独立的分类问题来说还是非常好用的。其基本思想就是在给定在各种情况下一个事件发生的先验概率的情况下,套用贝叶斯公式求出给定各种情况下给定事件发生的后验概率。思想非常简单,但是在某些情况下效果还是非常好的,值得掌握。 贝叶斯公式 贝叶斯公式很简单了,对于事件A和事件B,下面的公式显然成立: $$P(A|B)=\frac{P(A)P(B…
-
图像处理的Gamma矫正
Gamma矫正这个东西听上去挺玄乎,其实特别简单。就是为了调节照相机拍摄的图像的色调,使他更加符合人眼的观测效果(主要用在)。说白了就是一种幂函数型的色调曲线,即对于每个像素的灰度$I$我们把他变成$I^{gamma}$,当然,在这之前,我们得把灰度值$I$归一化到(0,1)的范围内。 这个gamma分为大于一和小于一的情况。当他大于一的时候,很明显这个幂函数在(0,1)的区间内是下凸的,图像会变暗;当他小于一的时候,这个幂函数在(0,1)的区间内是上凸的,图像会变亮。通常认为人眼的gamma…
-
OpenCV计算图像的梯度特征
计算图像的梯度是在进行图像处理时经常用到的方法,但是这玩意自己手写未免效率低而且容易出错。OpenCV里集成了相应的函数,只不过用的人好像并不多导致我找了半天才找到。姑且记一下以备日后使用。 计算像素梯度的绝对值 这个用到了cv2.magnitude方法,具体用法如下: sobelx=cv2.Sobel(im,cv2.CV_64F,1,0,ksize=3)#1,0表示只在x方向求一阶导数 sobely=cv2.Sobel(im,cv2.CV_64F,0,1,ksize=3)#0,1表示只…
-
Tomcat Servlet编程基础
之前一直使用的是Apache服务器,对于Tomcat的工作方式反而不那么习惯。给我一个Java web程序源码我都不晓得他应该怎么连接到Tomcat上。于是趁着无聊的时候看了个J2EE的Servlet教程,终于对怎么把java部署到Tomcat上、以及Tomcat的基本工作流程有了简要的认识。当然,这里仅仅指的是简单的Servlet程序的部署方法,不过这点方法从理论上讲已经具备了写一个简单web 应用的能力了。 Tomcat基本配置 Tomcat的配置文件是%TOMCAT_HOME%/co…
-
Python面向对象编程基础
最近一直在用Python写代码,发现了很多代码重复的问题,总是复制粘贴显得特别凌乱,于是就想用类来封装一下。下面就记录下Python中最基础的面向对象编程方法。python的面向对象跟java,c++的面向对象意思都差不多,从他们类比过来还是非常好理解的。 类定义 python的类定义比较简单格式基本是这样的: class Test(): publicAttr= 0 def __init__(self): pass def instanceM…
-
Markdown文本标记语言初识
一直听说用Markdown写博文挺方便的,也一直没有在意,然而最近在用jupyter的时候突然发现jupyter是自带Markdown的,这让没用过的我很是尴尬。而且后来在网上翻博客的时候,发现“简书” 上的博客格式都非常漂亮,特别是层次非常清楚,排版也和工整,后来才知道这个就是用markdown写的。于是我也萌生了一个用markdown写文章的想法。 当然在这之前,肯定要了解下markdown的语法什么的。 平台 首先我需要一个Linux下写Markdown的小工具,有一个开源的小软件叫…
-
直方图均衡化处理
直方图均衡化方法属于图像增强的范畴,是一种对图像进行灰度级修正的方法。简而言之,就是对一个灰度图像进行处理,使他的特征更加明显。通常情况下,在对图像进行进一步的处理之前,直方图均衡化是一种对灰度进行归一化处理的好方法,而且也可以增强图像的对比度。 概述 这个方法的思路非常简单,就是我们把一个灰度图像以0-255个灰度值为横坐标,灰度对应的像素点的个数为纵坐标,构成一个灰度直方图。对于那些灰度分布非常不均衡的图像来说,我们要做的就是通过对灰度值进行一个映射,将他灰度直方图尽可能的拉伸。通常情…
-
利用Python脚本爬取字体文件
为了提高验证码的识别准确率,我们当然要首先得到足够多的测试数据。验证码下载下来容易,但是需要人脑手工识别着实让人受不了,于是我就想了个折衷的办法------自己造验证码。 为了保证多样性,首先当然需要不同的字模了,直接用类似ttf格式的字体文件即可,网上有很多ttf格式的字体包供我们下载。当然,我不会傻到手动下载解压缩,果断要写个爬虫了。 网站一:fontsquirrel.com 这个网站的字体可以免费下载,但是有很多下载点都是外链连接到其他网站的,这部分得忽略掉。 #coding:u…
-
自适应阈值分割的Bersen算法
最近处理到游侠网的验证码,学习了一点东西,聊作记录。 游侠网的验证码总体来讲比较简单,字符分割比较清楚。稍微有难度的地方就是处理他的阴影。 ** 示例 ** 很明显,如果直接拿这种图去跑机器学习算法的话肯定准确率不高,必然需要进行灰度或者二值化。当然,二值化是比较好的选择。 但是由于灰度分布是不均匀的,如果采用类似OTSU的全局阈值显然会造成分割不准,而局部阈值分割的Bersen算法则非常适合处理这种情况。 OTSU算法得到的图像: import cv2 from pylab imp…
-
Python在线编写以及文档查看工具Jupyter
jupyter其实就是ipython notebook的另一个版本,是一个很强大的基于ipython的python代码编辑器,python文档查看器。他可以部署在网页上,可以非常方便的对文件进行查看、下载,并且对python文件进行在线编译,甚至是远程连接。。。。。。用他编写的python文件本身就是一个强大的开发文档。更重要的是很多基于python开发的开源程序都热衷于用.ipynb格式的文件作为文档(比如caffe)。因此掌握jupyter的使用也尤为重要。 Ipython notebo…