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实现的下载8000首儿歌的代码分享
Nov 21 Python
举例详解Python中循环语句的嵌套使用
May 14 Python
pandas 对series和dataframe进行排序的实例
Jun 09 Python
python通过Windows下远程控制Linux系统
Jun 20 Python
Python中flatten( )函数及函数用法详解
Nov 02 Python
在unittest中使用 logging 模块记录测试数据的方法
Nov 30 Python
Python比较配置文件的方法实例详解
Jun 06 Python
Python 串口读写的实现方法
Jun 12 Python
python如何删除文件中重复的字段
Jul 16 Python
python飞机大战pygame游戏之敌机出场实现方法详解
Dec 17 Python
使用Pycharm(Python工具)新建项目及创建Python文件的教程
Apr 26 Python
Python matplotlib可视化实例解析
Jun 01 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
基于mysql的论坛(6)
2006/10/09 PHP
关于php支持分块与断点续传文件下载功能代码
2014/05/09 PHP
php+ajax制作无刷新留言板
2015/10/27 PHP
thinkPHP+phpexcel实现excel报表输出功能示例
2017/06/06 PHP
ECMAScript 基础知识
2007/06/29 Javascript
Ext grid 添加右击菜单
2009/11/26 Javascript
js 多浏览器分别判断代码
2010/04/01 Javascript
javascript循环变量注册dom事件 之强大的闭包
2010/09/08 Javascript
深入理解Javascript闭包 新手版
2010/12/28 Javascript
JS给超链接加确认对话框的方法
2015/02/24 Javascript
js+html5实现canvas绘制椭圆形图案的方法
2016/05/21 Javascript
在JavaScript中调用Java类和接口的方法
2016/09/07 Javascript
JavaScript版经典游戏之扫雷游戏完整示例【附demo源码下载】
2016/12/12 Javascript
原生js+cookie实现购物车功能的方法分析
2017/12/21 Javascript
Parcel 打包示例(React HelloWorld)
2018/01/16 Javascript
如何利用@angular/cli V6.0直接开发PWA应用详解
2018/05/06 Javascript
js canvas实现5张图片合成一张图片
2019/07/15 Javascript
解决echarts中横坐标值显示不全(自动隐藏)问题
2020/07/20 Javascript
vue使用keep-alive实现组件切换时保存原组件数据方法
2020/10/30 Javascript
python中常用的各种数据库操作模块和连接实例
2014/05/29 Python
简单谈谈python的反射机制
2016/06/28 Python
python3处理含有中文的url方法
2018/05/10 Python
详解Python中的测试工具
2019/06/09 Python
python调用HEG工具批量处理MODIS数据的方法及注意事项
2020/02/18 Python
python 常用日期处理-- datetime 模块的使用
2020/09/02 Python
澳大利亚第一旅行车和房车配件店:Caravan RV Camping
2020/12/26 全球购物
数据库测试通常都包括哪些方面
2015/11/30 面试题
财务工作个人求职的自我评价
2013/12/19 职场文书
初一生物教学反思
2014/01/18 职场文书
物业消防安全责任书
2014/07/23 职场文书
党委班子纠正“四风”问题整改措施
2014/10/28 职场文书
滴水洞导游词
2015/02/10 职场文书
高中教师个人总结
2015/02/10 职场文书
2015年119消防宣传日活动总结
2015/03/24 职场文书
解决Mysql报错 Table 'mysql.user' doesn't exist
2022/05/06 MySQL
Java使用HttpClient实现文件下载
2022/08/14 Java/Android