Python


  1. 利用Python在图片中添加文字

    使用OpenCV 在图片中添加文字看上去很简单,但是如果是利用OpenCV来做却很麻烦。OpenCV中并没有使用自定义字体文件的函数,这不仅意味着我们不能使用自己的字体,而且意味着他无法显示中文字符。这还是非常要命的事情。而且他显示出来的文字位置也不太好控制。比如下面的代码,他想做的仅仅是显示数字3: 代码: #coding=utf-8 import cv2 import numpy as np from pylab import * %matplotlib inline font=cv…

    Python, Computer Vision阅读全文

  2. Scikit-learn包基本使用

    Scikit-learn的包是机器学习使用的最全也是实用的包,封装了许多机器学习算法,包括各种分类、回归、聚类、降维、模型选择、预处理等许多方面的内容,提供了相当于黑盒的接口,非常适合初学者使用。 在朋友的推荐下发现了Kaggle这个网站,这里面有很多的机器学习的数据和基本的题目,通过这些练习可以比较好的掌握机器学习的算法。因此就在这当中拿了Titanic号遇难人员的预测做了个实验。其实做法十分简单,权当熟悉框架了。 题目要求 题目给定了Titannic号上人员的信息(包括阶层、姓名、性…

    Machine Learning, Python阅读全文

  3. 图像处理的Gamma矫正

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

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

  4. 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表示只…

    OpenCV, Python, Computer Vision阅读全文

  5. Python面向对象编程基础

    最近一直在用Python写代码,发现了很多代码重复的问题,总是复制粘贴显得特别凌乱,于是就想用类来封装一下。下面就记录下Python中最基础的面向对象编程方法。python的面向对象跟java,c++的面向对象意思都差不多,从他们类比过来还是非常好理解的。 类定义 python的类定义比较简单格式基本是这样的: class Test(): publicAttr= 0 def __init__(self): pass def instanceM…

    Python阅读全文

  6. 直方图均衡化处理

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

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

  7. 利用Python脚本爬取字体文件

    为了提高验证码的识别准确率,我们当然要首先得到足够多的测试数据。验证码下载下来容易,但是需要人脑手工识别着实让人受不了,于是我就想了个折衷的办法------自己造验证码。 为了保证多样性,首先当然需要不同的字模了,直接用类似ttf格式的字体文件即可,网上有很多ttf格式的字体包供我们下载。当然,我不会傻到手动下载解压缩,果断要写个爬虫了。 网站一:fontsquirrel.com 这个网站的字体可以免费下载,但是有很多下载点都是外链连接到其他网站的,这部分得忽略掉。 #coding:u…

    Python, Spider阅读全文

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

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

    MathJax, Computer Vision, Python阅读全文

  9. Python在线编写以及文档查看工具Jupyter

    jupyter其实就是ipython notebook的另一个版本,是一个很强大的基于ipython的python代码编辑器,python文档查看器。他可以部署在网页上,可以非常方便的对文件进行查看、下载,并且对python文件进行在线编译,甚至是远程连接。。。。。。用他编写的python文件本身就是一个强大的开发文档。更重要的是很多基于python开发的开源程序都热衷于用.ipynb格式的文件作为文档(比如caffe)。因此掌握jupyter的使用也尤为重要。 Ipython notebo…

    Python, Tools, Jupyter阅读全文

  10. Python中字符串的format函数使用

    从python2.6之后,python中的字符串就有了str.format()函数这一格式控制的强大工具。相比于之前使用%的格式控制手段,str.format()函数显然更加符合我们的思维习惯,而且更加简洁。 语法 作为字符串的一个方法,它以{}和:来代替%,进行格式控制。 定位 通过位置 In [1]: '{0},{1}'.format('kzc',18) Out[1]: 'kzc,18' In [2]: '{},{}&#…

    Python阅读全文