python PIL模块的基本使用


Posted in Python onSeptember 29, 2020

PIL基本功能介绍

from PIL import Image
from PIL import ImageEnhance
 
img = Image.open(r'E:\img\f1.png')
img.show()
#图像二值化
img = img.convert('L')
# 图像放大
img = img.resize((img.width * int(3), img.height * int(4)), Image.ANTIALIAS)
# # 对比度增强
enh_con = ImageEnhance.Contrast(img)
contrast = 2
img_contrasted = enh_con.enhance(contrast)
# 亮度增强
enh_bri = ImageEnhance.Brightness(img_contrasted)
brightness = 2.5
image_brightened = enh_bri.enhance(brightness)
#色度增强
enh_col = ImageEnhance.Color(img)
color = 50
image_colored = enh_col.enhance(color)
# # 锐度增强
enh_sha = ImageEnhance.Sharpness(img)
sharpness = 2
image_sharped = enh_sha.enhance(sharpness)
image_sharped.save(r'E:\img\f22.png', dpi=(300, 300), quality=95)
# image_sharped.save(r'E:\img\f22.png')
 
# 图片汉字识别
img2 = Image.open(r'E:\img\f22.png')
code2 = pytesseract.image_to_string(img2, lang='chi_sim')
# print(code2)
# 图片裁剪
image_cro = Image.open(r'E:\img\f24.png')
image_cropped = image_cro.crop(res)
image_cropped.save(u'E:\img\\f25.png') 

对图片进行黑白化处理

img_main = Image.open(u'E:/login1.png')
img_main = img_main.convert('L')
threshold1 = 138
table1 = []
for i in range(256):
  if i < threshold1:
    table1.append(0)
  else:
    table1.append(1)
img_main = img_main.point(table1, "1")
img_main.save(u'E:/login3.png')

计算小图在大图的坐标

def get_screenxy_from_bmp(main_bmp, son_bmp):
  # 获取屏幕上匹配指定截图的坐标->(x,y,width,height)
 
  img_main = Image.open(main_bmp)
  img_main = img_main.convert('L')
  threshold1 = 138
  table1 = []
  for i in range(256):
    if i < threshold1:
      table1.append(0)
    else:
      table1.append(1)
  img_main = img_main.point(table1, "1")
 
  img_son = Image.open(son_bmp)
  img_son = img_son.convert('L')
  threshold2 = 138
  table2 = []
  for i in range(256):
    if i < threshold2:
      table2.append(0)
    else:
      table2.append(1)
  img_son = img_son.point(table2, "1")
 
  datas_a = list(img_main.getdata())
  datas_b = list(img_son.getdata())
  for i, item in enumerate(datas_a):
    if datas_b[0] == item and datas_a[i + 1] == datas_b[1]:
      yx = divmod(i, img_main.size[0])
      main_start_pos = yx[1] + yx[0] * img_main.size[0]
 
      match_test = True
      for n in range(img_son.size[1]):
        main_pos = main_start_pos + n * img_main.size[0]
        son_pos = n * img_son.size[0]
 
        if datas_b[son_pos:son_pos + img_son.size[0]] != datas_a[main_pos:main_pos + img_son.size[0]]:
          match_test = False
          break
      if match_test:
        return (yx[1], yx[0], img_son.size[0], img_son.size[1])
  return False

ImageGrab实现屏幕截图

im = ImageGrab.grab()
im.save('D:/as1.png')
 
#   # # # 参数说明
#   # # # 第一个参数 开始截图的x坐标
#   # # # 第二个参数 开始截图的y坐标
#   # # # 第三个参数 结束截图的x坐标
#   # # # 第四个参数 结束截图的y坐标
bbox = (897, 131, 930, 148)
im = ImageGrab.grab(bbox)
im.save('D:/as2.png')

以上就是python PIL模块的基本使用的详细内容,更多关于python PIL模块的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python实现过滤单个Android程序日志脚本分享
Jan 16 Python
Python抽象类的新写法
Jun 18 Python
python实现画圆功能
Jan 25 Python
Python学习笔记之图片人脸检测识别实例教程
Mar 06 Python
Python中psutil的介绍与用法
May 02 Python
通过cmd进入python的实例操作
Jun 26 Python
关于python pycharm中输出的内容不全的解决办法
Jan 10 Python
python GUI库图形界面开发之PyQt5打印控件QPrinter详细使用方法与实例
Feb 28 Python
Python descriptor(描述符)的实现
Nov 15 Python
python中yield的用法详解
Jan 13 Python
python编程实现清理微信重复缓存文件
Nov 01 Python
Python中使用tkFileDialog实现文件选择、保存和路径选择
May 20 Python
Python 如何实现数据库表结构同步
Sep 29 #Python
scrapy-redis分布式爬虫的搭建过程(理论篇)
Sep 29 #Python
python ssh 执行shell命令的示例
Sep 29 #Python
Scrapy基于scrapy_redis实现分布式爬虫部署的示例
Sep 29 #Python
浅析python 字典嵌套
Sep 29 #Python
详解基于Scrapy的IP代理池搭建
Sep 29 #Python
Python 创建守护进程的示例
Sep 29 #Python
You might like
将一维或多维的数组连接成一个字符串的php代码
2010/08/08 PHP
php上传文件常见问题总结
2015/02/03 PHP
php浏览历史记录的方法
2015/03/10 PHP
php中时间函数date及常用的时间计算
2017/05/12 PHP
在Laravel中使用DataTables插件的方法
2018/05/29 PHP
Referer原理与图片防盗链实现方法详解
2019/07/03 PHP
laravel框架中路由设置,路由参数和路由命名实例分析
2019/11/23 PHP
Javascript基础知识(三)BOM,DOM总结
2014/09/29 Javascript
jQuery中each()方法用法实例
2014/12/27 Javascript
jqGrid表格应用之新增与删除数据附源码下载
2015/12/02 Javascript
AngularJS中比较两个数组是否相同
2016/08/24 Javascript
jQuery表单插件ajaxForm实例详解
2017/01/17 Javascript
JavaScript学习总结之正则的元字符和一些简单的应用
2017/06/30 Javascript
Vue-router结合transition实现app前进后退动画切换效果的实例
2017/10/11 Javascript
在vue-cli中组件通信的方法
2017/12/16 Javascript
分享ES6的7个实用技巧
2018/01/18 Javascript
详解JavaScript中的坐标和距离
2019/05/27 Javascript
使用webpack将ES6转化ES5的实现方法
2019/10/13 Javascript
Element Collapse 折叠面板的使用方法
2020/07/26 Javascript
python设置windows桌面壁纸的实现代码
2013/01/28 Python
以视频爬取实例讲解Python爬虫神器Beautiful Soup用法
2016/01/20 Python
利用Python生成文件md5校验值函数的方法
2017/01/10 Python
TensorFlow中权重的随机初始化的方法
2018/02/11 Python
Python 私有化操作实例分析
2019/11/21 Python
基于python中__add__函数的用法
2019/11/25 Python
基于python修改srt字幕的时间轴
2020/02/03 Python
Python叠加矩形框图层2种方法及效果
2020/06/18 Python
python安装及变量名介绍详解
2020/12/12 Python
The North Face北面法国官网:美国著名户外品牌
2019/11/01 全球购物
党员自我批评与反省材料
2014/02/10 职场文书
励志演讲稿3分钟
2014/08/21 职场文书
学校党的群众路线教育实践活动对照检查材料
2014/09/24 职场文书
初中英语教师个人工作总结
2015/02/09 职场文书
运动会闭幕式通讯稿
2015/07/18 职场文书
MySQL query_cache_type 参数与使用详解
2021/07/01 MySQL
JavaScript实现简单拖拽效果
2021/09/15 Javascript