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')

  

  

最新文章

  1. angularJS(6)
  2. 【SQL篇章--DATABASE/EVENTS】
  3. 如何在 apache 中开启 gzip 压缩服务
  4. 【收藏】Java多线程/并发编程大合集
  5. ACM/ICPC 之 BFS-广搜+队列入门-抓牛(POJ3278)
  6. Mac下java开发环境的搭建与开发工具的安装
  7. CSS3中的calc()
  8. java Swing图形化界面
  9. MVC5框架解析之Controller的创建
  10. Vuejs实例-02Vue.js项目集成ElementUI
  11. Aspects 源码学习
  12. ubuntu下面配置apache
  13. windows上传文件到linux云服务器上
  14. Zookeeper系列3 实现分布式锁
  15. 第5月第6天 NSOperation isConcurrent category同名覆盖
  16. ApplicationContextAware的使用
  17. mysql怎么查看是否支持分区
  18. Swift5 语言参考(十) 语法汇总
  19. 根据map键值对,生成update与select语句,单条执行语句
  20. Ajax 的几种方法应用

热门文章

  1. Google,真的要离我们而去吗?
  2. font:inherit
  3. Garmin APP开发之入门
  4. 《Python高效开发实战》实战演练——基本视图3
  5. word2013标题编号变成黑框
  6. jenkins代码自动部署
  7. 再次尝试windows下msys+MinGW编译ffmpeg
  8. Coursera_Learn how to learn笔记
  9. IOS segue(跳转页面处理)
  10. hdu-1198 Farm Irrigation---并查集+模拟(附测试数据)