图片读写
Pillow
对于图片的简单读写,常使用pillow进行操作,需要安装:pip install pillow
,可以用来画图,或者进行图片读取、裁剪、识别等操作的第三方模块
- Image下:
读取图片(一般用Image
方法,即from PIL import Image
)
1.open()
:打开图片,举例:image = Image.open("code.jpg")
2.show()
:显示图片(我们真正点开文件),举例:image.show()
3.save()
:保存图片,举例:image.save("aaa.jpg")
,其还有别的参数如保存格式format
、图片质量quality
,比如我们要以jpg格式保存,并且图片质量是原来的百分之80,:image.save("aaa.jpg", format="jpeg", quality=80)
4.getpixel ()
:某一像素点的颜色,传入的像素位置是元组,举例:image.getpixel((0,1))
5.thumbnail()
:设置图片尺寸,举例:image.thumbnail((128,128))
6.size
:获取图片尺寸,举例:image.size
,返回元组类型,两个值分别为宽和高 - ImageGrab下:
对图片操作
1.截图,四个参数代表左上角坐标和右下角坐标,举例:
image = ImageGrab.grab((0,0,100,100)) #截取(0,0)到(100,100)坐标图片
image.save('a.jpg')
读取黑白二维码,并用数字表示示例
from PIL import Image
image = Image.open('1.png')
# print(image.size)
with open("1.txt", 'w') as f:
for i in range(image.size[0]):
for j in range(image.size[1]):
x = image.getpixel((i, j)) #行对应高,列对应宽
if x[0]+x[1]+x[2] == 0: #黑的地方置1
f.write(str(1))
else:
f.write(str(0))
f.write('\n')
PILLOW读取文件出错:IOError: image file is truncated
执行这两句命令:
from PIL import ImageFile
ImageFile.LOAD_TRUNCATED_IMAGES = True
验证码生成示例
https://www.cnblogs.com/renpingsheng/p/7482680.html
更多参考
https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014320027235877860c87af5544f25a8deeb55141d60c5000
https://baijiahao.baidu.com/s?id=1595108270577043146&wfr=spider&for=pc
opencv
使用opencv读取图片也是一个很好的选择,而且读出来的数据直接是数组格式,在深度学习的图像处理中经常用到,这块可以参考我的另一篇文章:Python opencv操作图像
Gif图
可以使用imageio
模块(pip install imageio
)下的mimsave
方法,举例:
from imageio import mimsave
from glob import glob
mimsave("aaa.gif", [cv2.imread(each) for each in glob("./*.jpg")], fps=50)
# 用opencv读取当前路径的所有图片,并以一秒50张的帧数保存成gif文件
文字识别
可以使用pytesseract模块
1.image_to_string(image)
:识别图片内容,例如:text = pytesseract.image_to_string(image)
,此时text
就是读取图片后获得的字符串了
注:
以上基于安装tesseract-ocr
的环境,该软件只有命令行
使用方法:
tesseract 要识别的图片 内容写到哪个文件 -l chi_sim+equ+eng
(第一个代表中文简体、第二个代表数学公式、第三个代表英文)
举例:
tesseract code.jpg 1.txt -l chi_sim+equ+eng
注2:
当然,图片文字识别方法很多,还可以使用百度文字识别api,其在汉字识别上挺不错,一天能用500次,参见网址:
https://console.bce.baidu.com/ai/#/ai/ocr/overview/index