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 strip()函数 介绍
May 24 Python
Python获取脚本所在目录的正确方法
Apr 15 Python
python获取本机外网ip的方法
Apr 15 Python
如何在Python中编写并发程序
Feb 27 Python
Django查询数据库的性能优化示例代码
Sep 24 Python
TensorFLow用Saver保存和恢复变量
Mar 10 Python
python模块smtplib学习
May 22 Python
python使用xlrd模块读取xlsx文件中的ip方法
Jan 11 Python
详解Python中的各种转义符\n\r\t
Jul 10 Python
打包PyQt5应用时的注意事项
Feb 14 Python
PyQt5实现多张图片显示并滚动
Jun 11 Python
教你如何用Python实现人脸识别(含源代码)
Jun 23 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 5.5版本的array_column()函数
2014/10/24 PHP
3种方法轻松处理php开发中emoji表情的问题
2016/07/18 PHP
PHP实现的激活用户注册验证邮箱功能示例
2017/06/06 PHP
javascript while语句和do while语句的区别分析
2007/12/08 Javascript
基于JQuery的cookie插件
2010/04/07 Javascript
javascript ie6兼容position:fixed实现思路
2013/04/01 Javascript
无闪烁更新网页内容JS实现
2013/12/19 Javascript
js字符串操作方法实例分析
2015/05/06 Javascript
JavaScript通过Date-Mask将日期转换成字符串的方法
2015/06/04 Javascript
Angular Js文件上传之form-data
2015/08/28 Javascript
javascript冒泡排序小结
2016/04/10 Javascript
基于angularjs实现图片放大镜效果
2016/08/31 Javascript
js实现的在线调色板功能完整实例
2016/12/21 Javascript
jQuery插件FusionCharts绘制2D环饼图效果示例【附demo源码】
2017/04/10 jQuery
Node.js 使用命令行工具检查更新
2017/06/08 Javascript
认识less和webstrom的less配置方法
2017/08/02 Javascript
解决vue cli使用typescript后打包巨慢的问题
2019/09/30 Javascript
基于vue3.0.1beta搭建仿京东的电商H5项目
2020/05/06 Javascript
通过实例解析chrome如何在mac环境中安装vue-devtools插件
2020/07/10 Javascript
vue+iview实现分页及查询功能
2020/11/17 Vue.js
用Python删除本地目录下某一时间点之前创建的所有文件的实例
2017/12/14 Python
Python实现GUI学生信息管理系统
2020/04/05 Python
推荐10款最受Python开发者欢迎的Python IDE
2018/09/16 Python
Python中 Global和Nonlocal的用法详解
2020/01/20 Python
python词云库wordCloud使用方法详解(解决中文乱码)
2020/02/17 Python
浅析python表达式4+0.5值的数据类型
2020/02/26 Python
Django media static外部访问Django中的图片设置教程
2020/04/07 Python
Html5 webRTC简单实现视频调用的示例代码
2020/09/23 HTML / CSS
资产评估专业大学生求职信
2013/09/29 职场文书
大专毕业生自我评价分享
2013/11/10 职场文书
期末评语大全
2014/05/04 职场文书
公司市场专员岗位职责
2014/06/29 职场文书
湖南省召开党的群众路线教育实践活动总结大会报告
2014/10/21 职场文书
巾帼文明岗汇报材料
2014/12/24 职场文书
Python简易开发之制作计算器
2022/04/28 Python
Vue 打包后相对路径的引用问题
2022/06/05 Vue.js