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 struct.unpack
Sep 06 Python
Python的Flask框架中实现登录用户的个人资料和头像的教程
Apr 20 Python
Python中模块与包有相同名字的处理方法
May 05 Python
Python爬虫的两套解析方法和四种爬虫实现过程
Jul 20 Python
Django框架使用富文本编辑器Uedit的方法分析
Jul 31 Python
对Python 多线程统计所有csv文件的行数方法详解
Feb 12 Python
详解Python3迁移接口变化采坑记
Oct 11 Python
Python 中的pygame安装与配置教程详解
Feb 10 Python
django中url映射规则和服务端响应顺序的实现
Apr 02 Python
浅谈keras.callbacks设置模型保存策略
Jun 18 Python
python获取时间戳的实现示例(10位和13位)
Sep 23 Python
python 如何读、写、解析CSV文件
Mar 03 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数据库调用类调用实例(详细注释)
2012/07/12 PHP
php中require和require_once的区别说明
2014/02/27 PHP
PHP二维数组排序的3种方法和自定义函数分享
2014/04/09 PHP
php自定义函数截取汉字长度
2014/05/15 PHP
php字符串分割函数用法实例
2015/03/17 PHP
Yii框架 session 数据库存储操作方法示例
2019/11/18 PHP
AngularJS基础 ng-list 指令详解及示例代码
2016/08/02 Javascript
AngularJS实现DOM元素的显示与隐藏功能
2016/11/22 Javascript
React实现点击删除列表中对应项
2017/01/10 Javascript
微信小程序 常用工具类详解及实例
2017/02/15 Javascript
ionic App问题总结系列之ionic点击系统返回键退出App
2017/08/19 Javascript
bootstrap可编辑下拉框jquery.editable-select
2017/10/12 jQuery
swiper动态改变滑动内容的实现方法
2018/01/17 Javascript
vue中axios请求的封装实例代码
2019/03/23 Javascript
聊聊鉴权那些事(推荐)
2019/08/22 Javascript
layui框架与SSM前后台交互的方法
2019/09/12 Javascript
vue+element表格导出为Excel文件
2019/09/26 Javascript
微信小程序实现轨迹回放的示例代码
2019/12/13 Javascript
python中执行shell命令的几个方法小结
2014/09/18 Python
Django框架中数据的连锁查询和限制返回数据的方法
2015/07/17 Python
答题辅助python代码实现
2018/01/16 Python
Python socket套接字实现C/S模式远程命令执行功能案例
2018/07/06 Python
对Django中的权限和分组管理实例讲解
2019/08/16 Python
淘宝秒杀python脚本 扫码登录版
2019/09/19 Python
numpy.transpose()实现数组的转置例子
2019/12/02 Python
Python优秀开源项目Rich源码解析的流程分析
2020/07/06 Python
测绘工程本科生求职信
2013/10/10 职场文书
小学教师暑期培训方案
2014/08/28 职场文书
六查六看心得体会
2014/10/14 职场文书
地道战观后感2000字
2015/06/04 职场文书
人生遥控器观后感
2015/06/11 职场文书
十七岁的单车观后感
2015/06/12 职场文书
毕业证明书
2015/06/19 职场文书
2015年国庆晚会主持词
2015/07/01 职场文书
安全教育主题班会教案
2015/08/12 职场文书
「月刊Comic Alive」2022年5月号封面公开
2022/03/21 日漫