1
+ #!/usr/bin/env python3
2
+ import os
3
+ import argparse
4
+
5
+ from PIL import Image , ImageDraw
6
+ from lamda .client import *
7
+
8
+
9
+ cert = os .environ .get ("CERTIFICATE" , None )
10
+ port = int (os .environ .get ("PORT" , 65000 ))
11
+
12
+ parser = argparse .ArgumentParser ()
13
+ parser .add_argument ("-d" , type = str , dest = "device" ,
14
+ help = "service ip address" , required = True )
15
+ parser .add_argument ("-p" , type = str , dest = "port" ,
16
+ default = port ,
17
+ help = "service port" )
18
+ parser .add_argument ("-f" , "--method" , type = int ,
19
+ dest = "method" ,
20
+ help = "find method" , default = 0 )
21
+ parser .add_argument ("-i" , "--image" , type = argparse .FileType ("rb" ),
22
+ dest = "image" ,
23
+ help = "find image path" , required = True )
24
+ parser .add_argument ("-t" , "--threshold" , type = float ,
25
+ dest = "threshold" ,
26
+ help = "threshold" , default = 0 )
27
+ parser .add_argument ("-m" , "--max-distance" , type = int ,
28
+ dest = "distance" ,
29
+ help = "max distance" , default = 0 )
30
+ parser .add_argument ("-cert" , type = str , default = cert ,
31
+ help = "ssl cert" )
32
+ args = parser .parse_args ()
33
+
34
+
35
+ d = Device (args .device , port = args .port ,
36
+ certificate = args .cert )
37
+ image = Image .open (d .screenshot (60 ))
38
+
39
+ draw = ImageDraw .Draw (image )
40
+ for r in d .find_similar_image (args .image .read (),
41
+ method = args .method ,
42
+ max_distance = args .distance ,
43
+ threshold = args .threshold ):
44
+ p1 = r .corner ("top-left" )
45
+ p2 = r .corner ("bottom-right" )
46
+ draw .rectangle (((p1 .x , p1 .y ), (p2 .x , p2 .y )),
47
+ outline = "red" , width = 3 )
48
+ image .show ()
49
+ exit (0 )
0 commit comments