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 命令行参数sys.argv
Sep 06 Python
Python实现字典的key和values的交换
Aug 04 Python
简单讲解Python编程中namedtuple类的用法
Jun 21 Python
python开发简易版在线音乐播放器
Mar 03 Python
python字典操作实例详解
Nov 16 Python
python实现最长公共子序列
May 22 Python
Python控制Firefox方法总结
Jun 03 Python
Django Admin后台添加数据库视图过程解析
Apr 01 Python
Python使用Excel将数据写入多个sheet
May 16 Python
Python新建项目自动添加介绍和utf-8编码的方法
Dec 26 Python
python解决12306登录验证码的实现
Apr 18 Python
python单元测试之pytest的使用
Jun 07 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/05/09 PHP
php的urlencode()URL编码函数浅析
2011/08/09 PHP
php分页代码学习示例分享
2014/02/20 PHP
修改yii2.0用户登录使用的user表为其它的表实现方法(推荐)
2017/08/01 PHP
Prototype源码浅析 Number部分
2012/01/16 Javascript
JavaScript自定义DateDiff函数(兼容所有浏览器)
2012/03/01 Javascript
鼠标移动到图片名上,显示图片的简单实例
2013/07/14 Javascript
解释&amp;&amp;和||在javascript中的另类用法
2014/07/28 Javascript
nodejs中操作mysql数据库示例
2014/12/20 NodeJs
在JavaScript中操作时间之getUTCDate()方法的使用
2015/06/10 Javascript
javascript特殊文本输入框网页特效
2016/09/13 Javascript
JavaScript评论点赞功能的实现方法
2017/03/13 Javascript
微信小程序 在线支付功能的实现
2017/03/14 Javascript
手把手教你把nodejs部署到linux上跑出hello world
2017/06/19 NodeJs
Express + Node.js实现登录拦截器的实例代码
2017/07/01 Javascript
微信小程序数据分析之自定义分析的实现
2018/08/17 Javascript
Vue+iview+webpack ie浏览器兼容简单处理
2019/09/20 Javascript
JS实现烟花爆炸效果
2020/03/10 Javascript
[41:12]Liquid vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.24
2019/09/10 DOTA
python目录操作之python遍历文件夹后将结果存储为xml
2014/01/27 Python
Python实现基于多线程、多用户的FTP服务器与客户端功能完整实例
2017/08/18 Python
Python3导入CSV文件的实例(跟Python2有些许的不同)
2018/06/22 Python
python中pika模块问题的深入探究
2018/10/13 Python
浅谈Python接口对json串的处理方法
2018/12/19 Python
解决Python下json.loads()中文字符出错的问题
2018/12/19 Python
Python实现查找数组中任意第k大的数字算法示例
2019/01/23 Python
Jupyter notebook快速入门教程(推荐)
2020/05/18 Python
金讯Java笔试题目
2013/06/18 面试题
一套Delphi的笔试题二
2013/05/11 面试题
大班幼儿评语大全
2014/04/30 职场文书
无毒社区工作方案
2014/05/23 职场文书
党的群众路线教育实践活动总结报告
2014/07/03 职场文书
小学教师师德师风自我剖析材料
2014/09/29 职场文书
教师节座谈会主持词
2015/07/03 职场文书
详解前端任务构建利器Gulp.js使用指南
2021/04/30 Javascript
Android使用EventBus发送消息,Fragment中接收消息的方法会执行多次
2022/04/24 Java/Android