PIL基本功能介绍
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
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' )
|
对图片进行黑白化处理
1
2
3
4
5
6
7
8
9
10
11
|
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' )
|
计算小图在大图的坐标
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
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实现屏幕截图
1
2
3
4
5
6
7
8
9
10
11
|
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模块的资料请关注服务器之家其它相关文章!
原文链接:https://www.cnblogs.com/feifeifeisir/p/11027013.html