如何将图片做成python代码
❶ 怎么用python将图片转换为文本形式
给你推荐一个博客你看一下吧,里面有转换的完整代码和解释
python 识别登陆验证码图片(完整代码)
❷ 怎么用python显示一张图片
在 python 中除了用 opencv,也可以用 matplotlib 和 PIL 这两个库操作图片。本人偏爱 matpoltlib,因为它的语法更像 matlab。一、matplotlib1. 显示图片复制代码import matplotlib.pyplot as plt # plt 用于显示图片import matplotlib.image as mpimg # mpimg 用于读取图片import numpy as nplena = mpimg.imread('lena.png') # 读取和代码处于同一目录下的 lena.png# 此时 lena 就已经是一个 np.array 了,可以对它进行任意处理lena.shape #(512, 512, 3)plt.imshow(lena) # 显示图片plt.axis('off') # 不显示坐标轴plt.show()复制代码2. 显示某个通道复制代码# 显示图片的第一个通道lena_1 = lena[:,:,0]plt.imshow('lena_1')plt.show()# 此时会发现显示的是热量图,不是我们预想的灰度图,可以添加 cmap 参数,有如下几种添加方法:plt.imshow('lena_1', cmap='Greys_r')plt.show()img = plt.imshow('lena_1')img.set_cmap('gray') # 'hot' 是热量图plt.show()复制代码3. 将 RGB 转为灰度图matplotlib 中没有合适的函数可以将 RGB 图转换为灰度图,可以根据公式自定义一个:复制代码def rgb2gray(rgb):return np.dot(rgb[...,:3], [0.299, 0.587, 0.114])gray = rgb2gray(lena)# 也可以用 plt.imshow(gray, cmap = plt.get_cmap('gray'))plt.imshow(gray, cmap='Greys_r')plt.axis('off')plt.show()复制代码4. 对图像进行放缩这里要用到 scipy复制代码from scipy import misclena_new_sz = misc.imresize(lena, 0.5) # 第二个参数如果是整数,则为百分比,如果是tuple,则为输出图像的尺寸plt.imshow(lena_new_sz)plt.axis('off')plt.show()复制代码5. 保存图像5.1 保存 matplotlib 画出的图像该方法适用于保存任何 matplotlib 画出的图像,相当于一个 screencapture。plt.imshow(lena_new_sz)plt.axis('off')plt.savefig('lena_new_sz.png')5.2 将 array 保存为图像from scipy import miscmisc.imsave('lena_new_sz.png', lena_new_sz)5.3 直接保存 array读取之后还是可以按照前面显示数组的方法对图像进行显示,这种方法完全不会对图像质量造成损失np.save('lena_new_sz', lena_new_sz) # 会在保存的名字后面自动加上.npyimg = np.load('lena_new_sz.npy') # 读取前面保存的数组二、PIL1. 显示图片from PIL import Imageim = Image.open('lena.png')im.show()2. 将 PIL Image 图片转换为 numpy 数组im_array = np.array(im)# 也可以用 np.asarray(im) 区别是 np.array() 是深拷贝,np.asarray() 是浅拷贝3. 保存 PIL 图片直接调用 Image 类的 save 方法from PIL import ImageI = Image.open('lena.png')I.save('new_lena.png')4. 将 numpy 数组转换为 PIL 图片这里採用 matplotlib.image 读入图片数组,注意这里读入的数组是 float32 型的,范围是 0-1,而 PIL.Image 数据是 uinit8 型的,范围是0-255,所以要进行转换:import matplotlib.image as mpimgfrom PIL import Imagelena = mpimg.imread('lena.png') # 这里读入的数据是 float32 型的,范围是0-1im = Image.fromarray(np.uinit8(lena*255))im.show()5. RGB 转换为灰度图from PIL import ImageI = Image.open('lena.png')I.show()L = I.convert('L')L.show()
❸ 如何把图片的excel转为Python里面的字典
如何将Excel导入Python之中呢?很简单!做法如下:首先我们要读取excel要用到xlrd模块,官网安装先上官网安装。然后就可以跟着里面的例子稍微试一下就知道怎么用了。大概的流程是这样的:1、导入模块import xlrd2、打开Excel文件读取数据data = xlrd.open_workbook('excel.xls')3、获取一个工作表1、 table = data.sheets()[0] #通过索引顺序获取2、 table = data.sheet_by_index(0) #通过索引顺序获取3、 table = data.sheet_by_name(u'Sheet1')#通过名称获取4、获取整行和整列的值(返回数组)table.row_values(i)table.col_values(i)5、获取行数和列数table.nrowstable.ncols6、获取单元格table.cell(0,0).valuetable.cell(2,3).value相对来说获取cell比较有用,相当于是给了一个二维数组,剩下的想怎么做都随着自己性子来。这全部归功于代码的简洁实用。若其中仍有若干小坑则花点时间自己琢磨下吧。以下列出的方法供人参考:1、首先就是我的统计是根据姓名统计各个表中的信息的,但是调试发现不同的表中各个名字貌似不能够匹配,开始怀疑过编码问题,不过后来发现是因为 空格。因为在excel中输入的时候很可能会顺手在一些名字后面加上几个空格或是tab键,这样看起来没什么差别,但是程序处理的时候这就是两个完全 不同的串了。我的解决方法是给每个获取的字元串都加上strip()处理一下。效果良好2、还是字元串的匹配,在判断某个单元格中的字元串(中文)是否等于我所给出的的时候发现无法匹配,并且各种unicode也不太奏效,网路过一些解决 方案,但是都比较复杂或是没用。最后我採用了一个比较变通的方式:直接从excel中获取我想要的值再进行比较,效果是不错就是通用行不太好,个 呢不能问题还没解决。二、写excel表写excel表要用到xlwt模块,可到官网下载下载后大致的操作流程如下:1、导入模块,复制代码代码 :import xlwt2、创建workbook,就是excel,这里只需要保存下,然后复制代码:workbook = xlwt.Workbook(encoding = 'ascii')3、接着创建表,然后复制代码:worksheet = workbook.add_sheet('My Worksheet')4、再往单元格内写入内容,复制代码代码:worksheet.write(0, 0, label = 'Row 0, Column 0 Value')5、最后保存,复制代码代码如下:workbook.save('Excel_Workbook.xls')以上便是小编对「如何将Excel导入Python之中呢?」的大致介绍,希望能有所帮助!
❹ 怎样使用Python图像处理
Python图像处理是一种简单易学,功能强大的解释型编程语言,它有简洁明了的语法,高效率的高层数据结构,能够简单而有效地实现面向对象编程,下文进行对Python图像处理进行说明。当然,首先要感谢「恋花蝶」,是他的文章「用Python图像处理 」 帮我坚定了用Python和PIL解决问题的想法,对于PIL的一些介绍和基本操作,可以看看这篇文章。我这里主要是介绍点我在使用过程中的经验。PIL可以对图像的颜色进行转换,并支持诸如24位彩色、8位灰度图和二值图等模式,简单的转换可以通过Image.convert(mode)函数完 成,其中mode表示输出的颜色模式。例如''L''表示灰度,''1''表示二值图模式等。但是利用convert函数将灰度图转换为二值图时,是採用固定的阈 值127来实现的,即灰度高于127的像素值为1,而灰度低于127的像素值为0。为了能够通过自定义的阈值实现灰度图到二值图的转换,就要用到 Image.point函数。深度剖析Python语法功能深度说明Python应用程序特点对Python资料库进行学习研究Python开发人员对Python经验之谈对Python动态类型语言解析Image.point函数有多种形式,这里只讨论Image.point(table, mode),利用该函数可以通过查表的方式实现像素颜色的模式转换。其中table为颜色转换过程中的映射表,每个颜色通道应当有256个元素,而 mode表示所输出的颜色模式,同样的,''L''表示灰度,''1''表示二值图模式。可见,转换过程的关键在于设计映射表,如果只是需要一个简单的箝位值,可以将table中高于或低于箝位值的元素分别设为1与0。当然,由于这里的table并没有什么特殊要求,所以可以通过对元素的特殊设定实现(0, 255)范围内,任意需要的一对一映射关系。示例代码如下:import Image # load a color image im = Image.open(''fun.jpg'') # convert to grey level image Lim = im.convert(''L'') Lim.save(''fun_Level.jpg'') # setup a converting table with constant threshold threshold = 80 table = [] for i in range(256): if i < threshold: table.append(0) else: table.append(1) # convert to binary image by the table bim = Lim.point(table, ''1'') bim.save(''fun_binary.jpg'')IT部分通常要完成的任务相当繁重但支撑这些工作的资源却很少,这已经成为公开的秘密。任何承诺提高编码效率、降低软体总成本的IT解决方案都应该进行 周到的考虑。Python图像处理所具有的一个显着优势就是可以在企业的软体创建和维护阶段节约大量资金,而这两个阶段的软体成本佔到了软体整个生命周期中总成本 的50%到95%。Python清晰可读的语法使得软体代码具有异乎寻常的易读性,甚至对那些不是最初接触和开发原始项目的程序员都 能具有这样的强烈感觉。虽然某些程序员反对在Python代码中大量使用空格。不过,几乎人人都承认Python图像处理的可读性远胜于C或者Java,后两 者都採用了专门的字元标记代码块结构、循环、函数以及其他编程结构的开始和结束。提倡Python的人还宣称,採用这些字元可能会产生显着的编程风格差 异,使得那些负责维护代码的人遭遇代码可读性方面的困难。转载
❺ 如何用python将图片转为字元画
# coding:utf-8# 为一张图片生成对应的字元集图片from PIL import Imageimport argparse# 命令行输入参数处理parser = argparse.ArgumentParser()parser.add_argument('file') # 输入文件parser.add_argument('-o', '--output') # 输出文件parser.add_argument('--width', type=int, default=80) # 输出字元画宽parser.add_argument('--height', type=int, default=80) # 输出字元画高# 获取参数args = parser.parse_args()IMG = args.fileWIDTH = args.widthHEIGHT = args.heightOUTPUT = args.outputascii_char = list("[email protected]%8&WM#*/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ")# 将256灰度映射到70个字元上def get_char(r, b, g, alpha=256):if alpha == 0:return ' 'length = len(ascii_char)gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b)unit = (256.0 + 1)/lengthreturn ascii_char[int(gray/unit)]if __name__ == '__main__':im = Image.open(IMG)im = im.resize((WIDTH, HEIGHT), Image.NEAREST)txt = ""for i in range(HEIGHT):for j in range(WIDTH):txt += get_char(*im.getpixel((j, i)))txt += '\n'print txt# 字元画输出到文件if OUTPUT:with open(OUTPUT,'w') as f:f.write(txt)else:with open("output.txt", 'w') as f:f.write(txt)
❻ 请使用Python语言完成图片内容。不一定要把这个题做出来,只需要给我一个能运行出来的代码框架就行
新建一个文本测试 文本内容就是你上面的单词
path 替换成你自己的文本路径
❼ python怎么输入图片
python导入图片的方法:一、直接从源图片中导入(图片位于images文件夹内)self.label1=QLabel(self)self.label1.setPixmap(QPixmap(r"images/head.jpg"))layout.addWidget(self.label1)#或者 layout.addWidget(QLabel(self, pixmap=QPixmap("images/head.jpg")))二、利用qrc资源导入1、先写qrc文件images/head.jpgimages/body.jpg2、将qrc文件转化成py文件转化命令为:pyrcc5 res.qrc -o res_rc.py3、导入res_rc.py:import res_rc4、layout.addWidget(QLabel(self,pixmap=QPixmap(":/images/head.jpg")))注意需要添加:/符号作为前缀。
❽ 用python解压图片并列印代码
import zipfile
# 传入压缩文件zfile.zip获取相关信息
zip_file = zipfile.ZipFile('zfile.zip')
# 获取压缩文件中的内容
f_content = zip_file.namelist()
# 压缩前的大小
f_size = zip_file.getinfo('zfile/a.txt').file_size
# 压缩后的大小
c_size = zip_file.getinfo('zfile/a.txt').compress_size
ZipFile 对象有一个 namelist()方法,返回 ZIP 文件中包含的所有文件和文件夹 的字元串的列表。这些字元串可以传递给 ZipFile 对象的 getinfo()方法,返回一个关 于特定文件的 ZipInfo 对象。ZipInfo 对象有自己的属性,诸如表示位元组数的 file_size 和 compress_size,它们分别表示原来文件大小和压缩后文件大小。ZipFile 对象表示 整个归档文件,而 ZipInfo 对象则保存该归档文件中每个文件的有用信息。
从 ZIP 文件中解压缩
ZipFile 对象的 extractall()方法从 ZIP 文件中解压缩所有文件和文件夹,放到当 前工作目录中。
import zipfile
zip_file = zipfile.ZipFile('zfile.zip')
# 解压
zip_extract = zip_file.extractall()
zip_extract.close()
运行这段代码后, example.zip 的内容将被解压缩到 C:。 或者, 你可以向 extractall()传递的一个文件夹名称,它将文件解压缩到那个文件夹,而不是当前工作 目录。如果传递给 extractall()方法的文件夹不存在,它会被创建。例如,如果你用 exampleZip.extractall('C: delicious')取代处的调用,代码就会从 example.zip 中解压 缩文件,放到新创建的 C:delicious 文件夹中。
ZipFile 对象的 extract()方法从 ZIP 文件中解压缩单个文件。
创建和添加到 ZIP 文件
要创建你自己的压缩 ZIP 文件,必须以「写模式」打开 ZipFile 对象,即传入'w' 作为第二个参数(这类似于向 open()函数传入'w',以写模式打开一个文本文件)。
如果向 ZipFile 对象的 write()方法传入一个路径,Python 就会压缩该路径所指 的文件,将它加到 ZIP 文件中。write()方法的第一个参数是一个字元串,代表要添 加的文件名。第二个参数是「压缩类型」参数,它告诉计算机使用怎样的演算法来压 缩文件。可以总是将这个值设置为 zipfile.ZIP_DEFLATED(这指定了 deflate 压缩 演算法,它对各种类型的数据都很有效)。
import zipfile
zip_file = zipfile.ZipFile('new.zip','w')
# 把zfile整个目录下所有内容,压缩为new.zip文件
zip_file.write('zfile',compress_type=zipfile.ZIP_DEFLATED)
# 把c.txt文件压缩成一个压缩文件
# zip_file.write('c.txt',compress_type=zipfile.ZIP_DEFLATED)
zip_file.close()
这段代码将创建一个新的 ZIP 文件,名为 new.zip,它包含 spam.txt 压缩后的内容。
要记住,就像写入文件一样,写模式将擦除 ZIP 文件中所有原有的内容。如果 只是希望将文件添加到原有的 ZIP 文件中,就要向 zipfile.ZipFile()传入'a'作为第二 个参数,以追加模式打开 ZIP 文件。