python 将图片转换成像素画,python将矩阵转为图像
大创项目是图像识别。第一个任务是将图片转换成二进制图像。
之前用过python的numpy和turtle,这次想用的是图像库PIL的Image类,刚刚从零开始。
整体效果(图像为01字符串)
原理很简单:图片的黑色部分用0,其余部分用1。
详细流程:
先读取照片,获取图片的像素,然后对像素进行缩放,再将缩放后的照片黑白化(如果原本是彩色图片的话)。
然后,一次性获得图像中每个像素的RGB颜色值。如果是黑色,像素替换为0,其余为1。
存储在一个字符串中,最后按照指定的长度和宽度输出。
使用的工具:
im.getpixel((j,I))
#getpixel是图像中像素的RGB颜色值。
im=im.resize((width,height))
#resize修改图片尺寸
im=im.convert(1 )
#用于不同模式下图像之间的转换
1是获得二值图像。
l模式是灰度图像。
我们将原始图像的长和宽乘以一个常数(代码中使用了SCALE)来实现缩放。
从PIL导入ImageSCALE=0.3#按比例缩放def get _ char (pixel,blank _ char= 0 ,Fill _ char= 1 ):if pixel==0:return blank _ charim=image . open(r ma . jpg )size=im . size #获取图片的像素#size[0]*size[1]横向和横向像素的宽度,height=int(size[0] * SCALE),int(size[1]* SCALE)im=im . resize((width, Height))#修改图像大小im=im.convert(1)#获取二值图像txt= for I in range(height):for j in range(width):txt=Get _ char(im . Get pixel((j,I)))#getpixel是图像中一个像素的RGB颜色值。 txt= \ n # print(txt)f=open(r Gou . txt , w) print (txt,file=f) f.close()
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。