Python 图片操作

图片读写

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容