在日常项目中,经常需要对图片进行分类、特征提取、识别等操作,而图片的识别大多都不是针对图片的像素本身,而是针对数值矩阵进行的,本文将会简单讲解如何将图片数据转换为文本形式的数值矩阵。
1、首先需要配置pillow,通过pip来安装:
pip install pillow
2、编写代码:
(1)准备阶段:
#导入PIL模块
from PIL import Image
#读取图片
im=Image.open("E:/test.png")
#打开要写入的文本文档
fh=open("E:/d.txt","a")
(2)可以将图片保存或者另存为其它格式:
im.save("D:/xc.bmp")
(3)获取图片的尺寸:
a=im.size
print(a)
输出结果:(长,宽)
(4)或者单独获取图片的长和宽:
width=im.size[0]
height=im.size[1]
(5)获得图片的像素:通过第几行第几列的方式获取
b=im.getpixel((1,9)) #获取第1行第9列的像素
print(b)
输出结果:(R值,G值,B值)
(6)对每个像素的RGB值根据实际应用情况进行处理,处理成单个数值,在本文将对图像中的黑色进行识别与提取:
#读取图片中的每一个像素
for i in range(0,height):
for j in range(0,width):
cl=im.getpixel((j,i))
clall=cl[0]+cl[1]+cl[2]
#如果是黑色,黑色的RGB值均为0
if(clall==0):
#在txt中写入1
fh.write("1")
else:
#在txt中写入0
fh.write("0")
#读取完之后进行换行
fh.write("\n")
#关闭文本文件
fh.close()
3、测试:
(1)通过自带的windows画图绘制一个数字的图片:
(2)在程序中读取该图片并写入文本文档,得到结果: