博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python数据分析:手写数字识别初步
阅读量:5818 次
发布时间:2019-06-18

本文共 1121 字,大约阅读时间需要 3 分钟。

1.手写数字识别是python图像处理的基础,首先需要安装pillow,我们需要以管理员身份打开Windows命令行并输入pip install pillow,如果提示pip需要更新,我们输入python -m pip install --upgrade pip先更新pip,这时再安装pillow就没问题了。

2.首先我们需要引入和图片识别有关的库,输入from PIL import Image进行引入,引入后我们就可以打开要进行操作的图片了,这里需要用到Image中的open()函数和save()函数,open()函数用来打开文件,save()函数用来将图片保存为我们需要的格式。

3.然后我们需要确定图片的长和宽,调用size()函数可以返回一个以图片的宽和高为元素的元组,这时获取图片的宽和高就可以用元素下标的方式。

4.我们在识别时要得到一个用1标识出数字的文本文档,第一个图为我用电脑的画图随便写的数字6,第二个图是经过识别得出的文本文档,我们可以看出,第二个图中用1标出了手写体的数字6的形状。因此我们在数字识别的过程中需要知道每一个位置的rgb编码,这个调用getpixel()即可实现,我们知道,黑色的rgb编码的三个数的和为0,我们要得到一个用0和1标识出来的图像,只需在rgb编码数之和为0的位置写入1,其余不为0的位置写入0。

在这里插入图片描述

在这里插入图片描述

5.编码实现:

from PIL import Imageim = Image.open("C:/Users/21974/Desktop/handwrite.PNG")im.save("C:/Users/21974/Desktop/handwrite.bmp")df = open("C:/Users/21974/Desktop/practicePil.txt", "a")    #打开一个文本用于接下来的写入操作width = im.size[0]height = im.size[1]for i in range(0, width):    for j in range(0, height):        k = im.getpixel((i, j))    #注意此处为两个括号,第二个括号内代表坐标为(i,j)处的色彩元素        sum = k[0]+k[1]+k[2]    #rgb编码的三个数字相加        if sum == 0:            df.write("1")        else:            df.write("0")    df.write("\n")df.close()

运行即可得到以0和1绘制的文本图像。

转载地址:http://rkzdx.baihongyu.com/

你可能感兴趣的文章
黑洞路由
查看>>
C++语言出现的bug
查看>>
JAVA 学习笔记2_程序结构、方法定义
查看>>
Cocos2d入门--3--小球运动
查看>>
php页面静态化技术;学习笔记
查看>>
【非凡程序员】 OC第十六节课 初识IOS开发二 (打地鼠的游戏)
查看>>
视频转码成mp4格式,添加关键帧,添加元数据,把元数据放在第一帧
查看>>
用户授权控制、数据库远程维护、综合应用案例
查看>>
Windows XP \Windows 2003启动过程的学习及故障分析处理(七)
查看>>
Rsync服务器配置,安装、配置、实例以及原理详解(三)
查看>>
我的友情链接
查看>>
spring 使用redis集群配置
查看>>
Java创建多线程的方法
查看>>
Linux系统基础优化脚本--安装完操作系统必做的操作
查看>>
MYSQL的账号管理和授权
查看>>
cocos2d-x-3.0rc0新工程的分辨率设置和控制台输出信息
查看>>
34个漂亮的应用程序后台管理系统界面(系列二)
查看>>
【转】com.microsoft.sqlserver.jdbc.SQLServerException: 到主机 的 TCP/IP 连接失败
查看>>
oracle 插入时间字符串 Date类型
查看>>
rhel6.1 kvm安装virtio驱动
查看>>