`
yuhai.china
  • 浏览: 161293 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

利用PIL做简单的图片数字识别

阅读更多
#coding:gbk
'''
Created on 2009-7-7

@author: yuhai
'''
import StringIO
import Image,os
import editdist

dic={}
 

def readimg(imgpath):
        buffer=StringIO.StringIO();
        im = Image.open(imgpath)
        for y in range(20):
            for x in range(9):
                v= im.getpixel((x,y))
                if v<200:buffer.write('1')
                else : buffer.write('0')
        buffer.seek(0)
        return buffer.read()

def regimg(imgpath):
    im = Image.open(imgpath).convert('L')
    result=StringIO.StringIO()
    for i in range(4):
        tmp =im.crop((i*9,0,i*10+10,20))
        s=StringIO.StringIO()
        tmp.save(s,"JPEG")
        s.seek(0)
        v=readimg(s)
        idx=0      
        score=editdist.distance(v,dic[0])
        for j in range(1,10):
            tmp=editdist.distance(v,dic[j])
            if tmp<score:
                score=tmp
                idx=j
        result.write(str(idx))
    result.seek(0)
    return result.read()
def init():
    f=open('./data','w')
    for i in range(10):
        dic[i]= readimg('e:/'+str(i)+'.bmp')
        f.write(dic[i])
        f.write('\n')
    f.close()

def readdata():
    f=open('./data','r')
    i=0
    for line in f.readlines():
        dic[i]= line.strip()
        i=i+1
    f.close()
    
def test():
    files = os.listdir('e:/img/') 
    redic=[]
    for f in files: 
        if f.find('.bmp') !=-1:
            result=regimg('e:/img/'+f)
            if f==result+'.bmp':
                redic.append(f)
                print f,result
    print 'correct %s' % len(redic)
                
def getcontent(imgpath):
    im = Image.open(imgpath).convert('L')
    print im.size
    box=(10,0,19,20)
    t=im.crop(box)
    t.save('e:/5.bmp', "JPEG") 
    
if __name__ == '__main__':   
    #getcontent('e:/img/1560.bmp')
    #init()
    readdata()
    test()

    
分享到:
评论

相关推荐

    python电表识别 带有简单的UI界面,能够识别电表数字和电表工作状态

    3. 数字识别:数字识别通常涉及OCR(光学字符识别)。Python中的Tesseract OCR是一个流行的开源工具,可以识别图像中的文本。首先,需要对图像进行预处理,然后使用Tesseract对处理后的图像进行字符分割和识别。为了...

    【人工智能】tensorflow手写数字识别项目(含项目资料和源码)附B站视频讲解

    【人工智能】TensorFlow手写数字识别项目是一个典型的深度学习应用,它主要利用TensorFlow这一强大的开源库进行构建。TensorFlow是Google开发的一款用于数值计算的软件库,特别适合于机器学习和深度学习任务。这个...

    手势识别数据集,数字0-9

    标题中的“手势识别数据集,数字0-9”是指一个专门用于手势识别的训练数据集,其中包含了0到9这十个数字的手势图像。这样的数据集通常被用于开发和训练计算机视觉模型,尤其是那些涉及手部动作识别的应用,如智能...

    python课程的作业-数字识别.zip

    5. 数字识别算法实现:可能包括简单的机器学习模型代码,如SVM、KNN,以及使用TensorFlow或Keras搭建的CNN模型。 6. 实验和作业:可能有实际的编程作业,让学生应用所学知识进行数字识别。 通过这份资源,学生可以...

    Python源码实例-01 图片识别.rar

    这个实例可能通过一步步的代码解析,帮助读者理解如何利用Python实现图片识别,从基本的图像操作到复杂的机器学习模型的搭建和训练。通过学习这个实例,你可以掌握Python在图像识别领域的核心概念和技术,并具备自己...

    手写数字识别python.zip

    在手写数字识别中,我们可能需要将图片调整到统一大小,灰度化,或者二值化等预处理步骤,这些都可以通过PIL库实现。 2. **MNIST数据集**:这是手写数字识别常用的训练数据集,包含60,000个训练样本和10,000个测试...

    Python实现一些类型的图片识别.zip

    5. **光学字符识别(OCR)**:利用Tesseract等库,识别图像中的文本内容,常用于扫描文档的自动数字化。 6. **图像生成**:通过GAN(生成对抗网络)可以生成与训练数据类似的新型图像。 在这个项目中,"it-project...

    浅谈Python3识别判断图片主要颜色并和颜色库进行对比的方法

    这个过程中,主要利用了PIL库的Image模块来读取图片并进行裁剪、转换等操作。代码中提到的`rgb_to_hsv`函数用于将RGB颜色转换为HSV颜色,而`getcolors`函数则用于统计图像中各个颜色的频次。 第二种方案则使用了...

    图像识别,图像识别技术,Python

    标签"猫狗分类"表明了我们的目标是区分两类图片,而"卷积图像识别"进一步强调了CNN在其中的作用。在实际应用中,除了二分类问题,图像识别还可以扩展到多类别分类,例如识别各种不同种类的动物或物体。 在解压缩的...

    python图片二值化提高识别率代码实例

    本篇文章通过Python代码实例详细讲解了如何利用图片二值化来提高文字识别率。 首先,我们需要了解什么是图片二值化。在彩色或灰度图像中,每个像素通常由多个通道(如红、绿、蓝)组成,每个通道的值范围通常是0到...

    图片识别软件图片识别软件

    总之,图片识别软件是现代数字生活和工作中不可或缺的一部分,它们结合了先进的计算机视觉技术和人工智能,为我们提供了从海量图片中提取信息的能力。无论你是开发者还是用户,理解和掌握这一领域的知识都能极大地...

    0到9的红色数字图片

    除了直接使用图片,开发者还可以利用图像处理库,如Python的PIL(Pillow)或JavaScript的sharp,对这些数字图片进行进一步的修改和优化,如调整大小、裁剪、添加边框、改变透明度等。这样可以更好地适应不同的界面...

    python手写数字识别系统源码数据库演示.zip

    在实际应用中,手写数字识别系统可能会利用开源库如TensorFlow或Keras来构建CNN模型,使用OpenCV进行图像预处理,以及PIL处理图像文件。用户界面可能通过Django的模板系统提供,允许用户上传手写数字的图片,然后由...

    mnist数据集训练结果测试用图片,手写数字0~9

    标题中的“mnist数据集训练结果测试用图片,手写数字0~9”指的是一个用于检验机器学习模型,特别是深度学习模型在识别手写数字任务上性能的数据集。这个数据集模仿了著名的MNIST(Modified National Institute of ...

    基于python的图像复制粘贴篡改识别软件.zip

    在图像处理和计算机视觉领域,图像识别是一项关键技术,它涵盖了从简单对象识别到复杂场景理解的广泛任务。在这个“基于python的图像复制粘贴篡改识别软件”中,我们主要探讨的是如何通过深度学习方法来检测图像中的...

    高分Python毕业设计基于Opencv的车牌识别系统源码+数据集,使用thinkter实现图形界面

    这是一个基于Python的高分毕业设计项目,主要利用OpenCV库进行车牌识别,同时结合了Tkinter和PIL库来创建图形用户界面。该项目的核心在于车牌识别技术,涉及到计算机视觉、图像处理以及机器学习等多个IT领域的知识。...

    Python实现字符型图片验证码识别完整过程详解

    9. **使用识别模型预测新的未知图片集**:利用训练好的模型对未知图片进行预测。 10. **达到根据“图片”就能返回识别正确的字符集的目标**:最终实现自动识别验证码的能力。 #### 素材准备 - **素材选择**:选择...

    小智文本识别:对一张或多张图片、文件夹中的图片和屏幕区域截图进行识别(PDF转Word 小意思)

    - 批量识别图片中的文本,这对于处理大量纸质文档的数字化非常有用。 - 屏幕区域截图识别,对于快速捕获屏幕上的文本信息非常方便。 - 将PDF文档转换为可编辑的Word格式,便于进一步的编辑和处理。 总的来说,这个...

    python实现kNN算法识别手写体数字的示例代码

    (1)图片的预处理:将png,jpg等格式的图片转换成文本数据,本博客的思想是,利用图片的rgb16进制编码(255,255,255)为白色,(0,0,0)为黑色,获取图片大小后,逐个像素进行判断分析,当此像素为空白时,在...

    毕设&课程作业_基于深度学习的12306图片验证码识别.zip

    这个项目的核心目标是利用先进的机器学习技术,特别是深度学习模型,来解决12306网站的图片验证码识别问题。12306验证码通常包含扭曲的文字或数字,设计的目的是为了防止自动化程序的恶意操作,如抢购火车票。然而,...

Global site tag (gtag.js) - Google Analytics