├── Basics
├── 5_Must_Know_OpenCV_Functions.py
├── ColorPicker.py
├── Crop_Resize_Images.py
├── Detecting_Clicks_On_Images.py
├── Draw_Shapes_Text.py
├── Intsall.py
├── Joining_Multiple_Images_To_Display.py
├── Read_Image_Video_Webcam.py
├── Warp_Prespective.py
└── screenCap.py
├── Intermediate
├── Custom Object Detection
│ ├── createData.py
│ ├── haarcascades
│ │ ├── haarcascade_eye.xml
│ │ ├── haarcascade_eye_tree_eyeglasses.xml
│ │ ├── haarcascade_frontalcatface.xml
│ │ ├── haarcascade_frontalcatface_extended.xml
│ │ ├── haarcascade_frontalface_alt.xml
│ │ ├── haarcascade_frontalface_alt2.xml
│ │ ├── haarcascade_frontalface_alt_tree.xml
│ │ ├── haarcascade_frontalface_default.xml
│ │ ├── haarcascade_fullbody.xml
│ │ ├── haarcascade_lefteye_2splits.xml
│ │ ├── haarcascade_licence_plate_rus_16stages.xml
│ │ ├── haarcascade_lowerbody.xml
│ │ ├── haarcascade_profileface.xml
│ │ ├── haarcascade_righteye_2splits.xml
│ │ ├── haarcascade_russian_plate_number.xml
│ │ ├── haarcascade_smile.xml
│ │ ├── haarcascade_upperbody.xml
│ │ └── haarcascade_wall_clock.xml
│ └── objectDetectoin.py
├── Object Measurement
│ ├── 1.jpg
│ ├── ObjectMeasurement.py
│ ├── ReadMe.md
│ └── utlis.py
├── QrCodeBarCode
│ ├── 1.png
│ ├── Images
│ │ ├── Barcode (1).gif
│ │ ├── Barcode (4).gif
│ │ ├── Barcode (5).gif
│ │ ├── Barnangen.png
│ │ ├── Emily.png
│ │ ├── Jhon.png
│ │ ├── Perfume.png
│ │ ├── Qr (1).png
│ │ ├── Qr (2).png
│ │ ├── Qr (3).png
│ │ ├── Qr (4).png
│ │ ├── Qr (5).png
│ │ ├── Qr (6).png
│ │ ├── Qr (7).png
│ │ ├── Qr (8).png
│ │ ├── Qr (9).png
│ │ └── Vitamin.png
│ ├── QrBarTest.py
│ ├── QrCodeProject.py
│ ├── Readme.md
│ └── myDataFile.text
├── RealTime_Color_Detection.py
├── RealTime_Shape_Detection_Contours.py
├── TextDetection
│ ├── ReadMe.md
│ ├── TextMoreExamples.py
│ ├── TextSimple.py
│ ├── oem.PNG
│ └── psm.PNG
└── objectTracking.py
├── README.md
├── Resources
├── chess.jpg
├── lena.png
├── readme.md
├── shapes.png
└── testVideo.mp4
└── thumbnails
├── 0.jpg
├── 1.jpg
├── 10.png
├── 11.PNG
├── 2.jpg
├── 3.jpg
├── 4.jpg
├── 5.jpg
├── 6.jpg
├── 7.jpg
├── 8.jpg
├── 9.jpg
├── QrCode.jpg
├── ScreenCap.gif
└── TextDetection.gif
/Basics/5_Must_Know_OpenCV_Functions.py:
--------------------------------------------------------------------------------
1 |
2 | import cv2
3 | import numpy as np
4 |
5 | kernel = np.ones((5,5),np.uint8)
6 | print(kernel)
7 |
8 | path = "Resources/lena.png"
9 | img = cv2.imread(path)
10 | imgGray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
11 | imgBlur = cv2.GaussianBlur(imgGray,(7,7),0)
12 | imgCanny = cv2.Canny(imgBlur,100,200)
13 | imgDilation = cv2.dilate(imgCanny,kernel , iterations = 10)
14 | imgEroded = cv2.erode(imgDilation,kernel,iterations=2)
15 |
16 | cv2.imshow("Lena",img)
17 | cv2.imshow("GrayScale",imgGray)
18 | cv2.imshow("Img Blur",imgBlur)
19 | cv2.imshow("Img Canny",imgCanny)
20 | cv2.imshow("Img Dialation",imgDilation)
21 | cv2.imshow("Img Erosion",imgEroded)
22 | cv2.waitKey(0)
23 |
--------------------------------------------------------------------------------
/Basics/ColorPicker.py:
--------------------------------------------------------------------------------
1 | import cv2
2 | import numpy as np
3 |
4 | ############################################
5 | cap = cv2.VideoCapture(1)
6 | path = 'test.png'
7 | ############################################
8 |
9 | def empty(a):
10 | pass
11 |
12 |
13 | def stackImages(scale, imgArray):
14 | rows = len(imgArray)
15 | cols = len(imgArray[0])
16 | rowsAvailable = isinstance(imgArray[0], list)
17 | width = imgArray[0][0].shape[1]
18 | height = imgArray[0][0].shape[0]
19 | if rowsAvailable:
20 | for x in range(0, rows):
21 | for y in range(0, cols):
22 | if imgArray[x][y].shape[:2] == imgArray[0][0].shape[:2]:
23 | imgArray[x][y] = cv2.resize(imgArray[x][y], (0, 0), None, scale, scale)
24 | else:
25 | imgArray[x][y] = cv2.resize(imgArray[x][y], (imgArray[0][0].shape[1], imgArray[0][0].shape[0]),
26 | None, scale, scale)
27 | if len(imgArray[x][y].shape) == 2: imgArray[x][y] = cv2.cvtColor(imgArray[x][y], cv2.COLOR_GRAY2BGR)
28 | imageBlank = np.zeros((height, width, 3), np.uint8)
29 | hor = [imageBlank] * rows
30 | hor_con = [imageBlank] * rows
31 | for x in range(0, rows):
32 | hor[x] = np.hstack(imgArray[x])
33 | ver = np.vstack(hor)
34 | else:
35 | for x in range(0, rows):
36 | if imgArray[x].shape[:2] == imgArray[0].shape[:2]:
37 | imgArray[x] = cv2.resize(imgArray[x], (0, 0), None, scale, scale)
38 | else:
39 | imgArray[x] = cv2.resize(imgArray[x], (imgArray[0].shape[1], imgArray[0].shape[0]), None, scale, scale)
40 | if len(imgArray[x].shape) == 2: imgArray[x] = cv2.cvtColor(imgArray[x], cv2.COLOR_GRAY2BGR)
41 | hor = np.hstack(imgArray)
42 | ver = hor
43 | return ver
44 |
45 |
46 | cv2.namedWindow("TrackBars")
47 | cv2.resizeWindow("TrackBars", 640, 240)
48 | cv2.createTrackbar("Hue Min", "TrackBars", 0, 179, empty)
49 | cv2.createTrackbar("Hue Max", "TrackBars", 179, 179, empty)
50 | cv2.createTrackbar("Sat Min", "TrackBars", 0, 255, empty)
51 | cv2.createTrackbar("Sat Max", "TrackBars", 255, 255, empty)
52 | cv2.createTrackbar("Val Min", "TrackBars", 0, 255, empty)
53 | cv2.createTrackbar("Val Max", "TrackBars", 255, 255, empty)
54 |
55 | while True:
56 | # img = cv2.imread(path) #for image
57 | _, img = cap.read() # for Video
58 | imgHSV = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
59 | h_min = cv2.getTrackbarPos("Hue Min", "TrackBars")
60 | h_max = cv2.getTrackbarPos("Hue Max", "TrackBars")
61 | s_min = cv2.getTrackbarPos("Sat Min", "TrackBars")
62 | s_max = cv2.getTrackbarPos("Sat Max", "TrackBars")
63 | v_min = cv2.getTrackbarPos("Val Min", "TrackBars")
64 | v_max = cv2.getTrackbarPos("Val Max", "TrackBars")
65 | print(f'{h_min},{h_max},{s_min},{s_max},{v_min},{v_max}')
66 | lower = np.array([h_min, s_min, v_min])
67 | upper = np.array([h_max, s_max, v_max])
68 | mask = cv2.inRange(imgHSV, lower, upper)
69 | imgResult = cv2.bitwise_and(img, img, mask=mask)
70 |
71 | # cv2.imshow("Original",img)
72 | # cv2.imshow("HSV",imgHSV)
73 | # cv2.imshow("Mask", mask)
74 | # cv2.imshow("Result", imgResult)
75 |
76 | imgStack = stackImages(0.6, ([img, imgHSV], [mask, imgResult]))
77 | cv2.imshow("Stacked Images", imgStack)
78 |
79 | cv2.waitKey(1)
80 |
--------------------------------------------------------------------------------
/Basics/Crop_Resize_Images.py:
--------------------------------------------------------------------------------
1 | import cv2
2 |
3 | path = "Resources/road.jpg"
4 | img = cv2.imread(path)
5 | print(img.shape)
6 |
7 | width ,height = 1000 , 1000
8 | imgResize = cv2.resize(img,(width,height))
9 | print(imgResize.shape)
10 |
11 | imgCropped = img[300:540,430:480]
12 | imCropResize = cv2.resize(imgCropped,(img.shape[1],img.shape[0]))
13 |
14 | cv2.imshow("Road",img)
15 | cv2.imshow("Road Resized",imgResize)
16 | cv2.imshow("Road Cropped",imgCropped)
17 | cv2.imshow("Road Cropped Resized",imCropResize)
18 | cv2.waitKey(0)
19 |
--------------------------------------------------------------------------------
/Basics/Detecting_Clicks_On_Images.py:
--------------------------------------------------------------------------------
1 | ################### Simple Detect #############
2 |
3 | # import cv2
4 | # def mousePoints(event,x,y,flags,params):
5 | # if event == cv2.EVENT_LBUTTONDOWN:
6 | # print(x,y)
7 | #
8 | # img = cv2.imread('Resources/cards.jpg')
9 | # cv2.imshow("Original Image ", img)
10 | # cv2.setMouseCallback("Original Image ", mousePoints)
11 | # cv2.waitKey(0)
12 |
13 |
14 | ######### WARP PRESPECTIVE IMPLEMANTAION WITH MOUSE CLICKS ##################
15 |
16 | import cv2
17 | import numpy as np
18 |
19 | circles = np.zeros((4,2),np.int)
20 | counter = 0
21 |
22 | def mousePoints(event,x,y,flags,params):
23 | global counter
24 | if event == cv2.EVENT_LBUTTONDOWN:
25 |
26 | circles[counter] = x,y
27 | counter = counter + 1
28 | print(circles)
29 |
30 |
31 |
32 | img = cv2.imread('Resources/cards.jpg')
33 | while True:
34 |
35 |
36 | if counter == 4:
37 | width, height = 250,350
38 | pts1 = np.float32([circles[0],circles[1],circles[2],circles[3]])
39 | pts2 = np.float32([[0,0],[width,0],[0,height],[width,height]])
40 | matrix = cv2.getPerspectiveTransform(pts1,pts2)
41 | imgOutput = cv2.warpPerspective(img,matrix,(width,height))
42 | cv2.imshow("Output Image ", imgOutput)
43 |
44 |
45 | for x in range (0,4):
46 | cv2.circle(img,(circles[x][0],circles[x][1]),3,(0,255,0),cv2.FILLED)
47 |
48 | cv2.imshow("Original Image ", img)
49 | cv2.setMouseCallback("Original Image ", mousePoints)
50 | cv2.waitKey(1)
51 |
--------------------------------------------------------------------------------
/Basics/Draw_Shapes_Text.py:
--------------------------------------------------------------------------------
1 | import cv2
2 | import numpy as np
3 |
4 | img = np.zeros((512,512,3),np.uint8)
5 | # 0 255
6 | print(img)
7 | #img[:] = 255 ,0,0
8 |
9 | cv2.line(img,(0,0),(img.shape[1],img.shape[0]),(0,255,0),2)
10 | cv2.rectangle(img,(350,100),(450,200),(0,0,255),cv2.FILLED)
11 | cv2.circle(img,(150,400),50,(255,0,0),3)
12 | cv2.putText(img,"Draw Shapes ",(75,50),cv2.FONT_HERSHEY_COMPLEX,1,(0,150,0),1)
13 |
14 | cv2.imshow("Image", img)
15 |
16 | cv2.waitKey(0)
17 |
--------------------------------------------------------------------------------
/Basics/Intsall.py:
--------------------------------------------------------------------------------
1 | #In this tutorial we learn how to install PYTHON and PYCHARM. Later we install the OPENCV plugin and test it out.
2 |
3 | # Links
4 | # https://python.org/downloads/
5 | # https://www.jetbrains.com/pycharm/download/#section=windows
6 |
7 |
8 | #Install Python first and then install the Pycharm Community Edition
9 | #To install opencv go to pycharm then
10 | # File - Settings - Project - Project Interpreter - "+" (add button) - Search for opencv-python and click on Install Package
11 | # Then search for numpy and install
12 | # Create a new python file and run the code below to test the installation
13 |
14 | import cv2
15 | import numpy
16 | print("This is a Text)
17 |
--------------------------------------------------------------------------------
/Basics/Joining_Multiple_Images_To_Display.py:
--------------------------------------------------------------------------------
1 | ####################### STACKING USING THE FUNCTION #####################
2 |
3 | import cv2
4 | import numpy as np
5 |
6 | frameWidth = 640
7 | frameHeight = 480
8 | cap = cv2.VideoCapture(0)
9 | cap.set(3, frameWidth)
10 | cap.set(4, frameHeight)
11 |
12 | def stackImages(imgArray,scale,lables=[]):
13 | sizeW= imgArray[0][0].shape[1]
14 | sizeH = imgArray[0][0].shape[0]
15 | rows = len(imgArray)
16 | cols = len(imgArray[0])
17 | rowsAvailable = isinstance(imgArray[0], list)
18 | width = imgArray[0][0].shape[1]
19 | height = imgArray[0][0].shape[0]
20 | if rowsAvailable:
21 | for x in range ( 0, rows):
22 | for y in range(0, cols):
23 | imgArray[x][y] = cv2.resize(imgArray[x][y], (sizeW, sizeH), None, scale, scale)
24 | if len(imgArray[x][y].shape) == 2: imgArray[x][y]= cv2.cvtColor( imgArray[x][y], cv2.COLOR_GRAY2BGR)
25 | imageBlank = np.zeros((height, width, 3), np.uint8)
26 | hor = [imageBlank]*rows
27 | hor_con = [imageBlank]*rows
28 | for x in range(0, rows):
29 | hor[x] = np.hstack(imgArray[x])
30 | hor_con[x] = np.concatenate(imgArray[x])
31 | ver = np.vstack(hor)
32 | ver_con = np.concatenate(hor)
33 | else:
34 | for x in range(0, rows):
35 | imgArray[x] = cv2.resize(imgArray[x], (sizeW, sizeH), None, scale, scale)
36 | if len(imgArray[x].shape) == 2: imgArray[x] = cv2.cvtColor(imgArray[x], cv2.COLOR_GRAY2BGR)
37 | hor= np.hstack(imgArray)
38 | hor_con= np.concatenate(imgArray)
39 | ver = hor
40 | if len(lables) != 0:
41 | eachImgWidth= int(ver.shape[1] / cols)
42 | eachImgHeight = int(ver.shape[0] / rows)
43 | print(eachImgHeight)
44 | for d in range(0, rows):
45 | for c in range (0,cols):
46 | cv2.rectangle(ver,(c*eachImgWidth,eachImgHeight*d),(c*eachImgWidth+len(lables[d][c])*13+27,30+eachImgHeight*d),(255,255,255),cv2.FILLED)
47 | cv2.putText(ver,lables[d][c],(eachImgWidth*c+10,eachImgHeight*d+20),cv2.FONT_HERSHEY_COMPLEX,0.7,(255,0,255),2)
48 | return ver
49 |
50 | while True:
51 | success, img = cap.read()
52 | kernel = np.ones((5,5),np.uint8)
53 | print(kernel)
54 | #path = "Resources/lena.png"
55 | #img = cv2.imread(path)
56 | imgGray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
57 | imgBlur = cv2.GaussianBlur(imgGray,(7,7),0)
58 | imgCanny = cv2.Canny(imgBlur,100,200)
59 | imgDilation = cv2.dilate(imgCanny,kernel , iterations = 2)
60 | imgEroded = cv2.erode(imgDilation,kernel,iterations=2)
61 |
62 | #imgBlank = np.zeros((200,200),np.uint8)
63 | StackedImages = stackImages(([img,imgGray,imgBlur],
64 | [imgCanny,imgDilation,imgEroded]),0.6)
65 | cv2.imshow("Staked Images", StackedImages)
66 | if cv2.waitKey(1) & 0xFF == ord('q'):
67 | break
68 |
69 |
70 | ################### Stacking images without Function ################
71 | # import cv2
72 | # import numpy as np
73 | # img1 = cv2.imread('../Resources/lena.png',0)
74 | # img2 = cv2.imread('../Resources/land.jpg')
75 | # print(img1.shape)
76 | # print(img2.shape)
77 | # img1 = cv2.resize(img1, (0, 0), None, 0.5, 0.5)
78 | # img2 = cv2.resize(img2, (0, 0), None, 0.5, 0.5)
79 | # img1 = cv2.cvtColor(img1, cv2.COLOR_GRAY2BGR)
80 | # hor= np.hstack((img1, img2))
81 | # ver = np.vstack((img1, img2))
82 | # cv2.imshow('Vertical', ver)
83 | # cv2.imshow('Horizontal', hor)
84 | # cv2.waitKey(0)
85 |
--------------------------------------------------------------------------------
/Basics/Read_Image_Video_Webcam.py:
--------------------------------------------------------------------------------
1 |
2 | ######################## READ IMAGE ############################
3 | # import cv2
4 | # # LOAD AN IMAGE USING 'IMREAD'
5 | # img = cv2.imread("Resources/lena.png")
6 | # # DISPLAY
7 | # cv2.imshow("Lena Soderberg",img)
8 | # cv2.waitKey(0)
9 |
10 | ######################### READ VIDEO #############################
11 | # import cv2
12 | # frameWidth = 640
13 | # frameHeight = 480
14 | # cap = cv2.VideoCapture("Resources/testVideo.mp4")
15 | # while True:
16 | # success, img = cap.read()
17 | # img = cv2.resize(img, (frameWidth, frameHeight))
18 | # cv2.imshow("Result", img)
19 | # if cv2.waitKey(1) & 0xFF == ord('q'):
20 | # break
21 | ######################### READ WEBCAM ############################
22 | import cv2
23 | frameWidth = 640
24 | frameHeight = 480
25 | cap = cv2.VideoCapture(0)
26 | cap.set(3, frameWidth)
27 | cap.set(4, frameHeight)
28 | while True:
29 | success, img = cap.read()
30 | cv2.imshow("Result", img)
31 | if cv2.waitKey(1) & 0xFF == ord('q'):
32 | break
33 |
--------------------------------------------------------------------------------
/Basics/Warp_Prespective.py:
--------------------------------------------------------------------------------
1 | import cv2
2 | import numpy as np
3 |
4 | img = cv2.imread('Resources/cards.jpg')
5 |
6 | width, height = 250,350
7 | pts1 = np.float32([[111,219],[287,188],[154,482],[352,440]])
8 | pts2 = np.float32([[0,0],[width,0],[0,height],[width,height]])
9 | matrix = cv2.getPerspectiveTransform(pts1,pts2)
10 | imgOutput = cv2.warpPerspective(img,matrix,(width,height))
11 |
12 | for x in range (0,4):
13 | cv2.circle(img,(pts1[x][0],pts1[x][1]),15,(0,255,0),cv2.FILLED)
14 |
15 | cv2.imshow("Original Image ", img)
16 | cv2.imshow("Output Image ", imgOutput)
17 | cv2.waitKey(0)
18 |
--------------------------------------------------------------------------------
/Basics/screenCap.py:
--------------------------------------------------------------------------------
1 | import numpy as np
2 | from PIL import ImageGrab
3 | import cv2
4 |
5 |
6 | def captureScreen(bbox=(50,50,690,530)):
7 | capScr = np.array(ImageGrab.grab(bbox))
8 | capScr = cv2.cvtColor(capScr, cv2.COLOR_RGB2BGR)
9 | return capScr
10 |
11 |
12 | while True:
13 | timer = cv2.getTickCount()
14 | img = captureScreen()
15 | fps = cv2.getTickFrequency() / (cv2.getTickCount() - timer);
16 | cv2.putText(img,'FPS {}'.format(int(fps)), (75, 40), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (20, 230, 20), 2)
17 | cv2.imshow('Screen Capture',img)
18 | cv2.waitKey(1)
19 |
--------------------------------------------------------------------------------
/Intermediate/Custom Object Detection/createData.py:
--------------------------------------------------------------------------------
1 | import cv2
2 | import os
3 | import time
4 |
5 | #####################################################
6 |
7 | myPath = 'data/images' # Rasbperry Pi: '/home/pi/Desktop/data/images'
8 | cameraNo = 1
9 | cameraBrightness = 180
10 | moduleVal = 10 # SAVE EVERY ITH FRAME TO AVOID REPETITION
11 | minBlur = 500 # SMALLER VALUE MEANS MORE BLURRINESS PRESENT
12 | grayImage = False # IMAGES SAVED COLORED OR GRAY
13 | saveData = True # SAVE DATA FLAG
14 | showImage = True # IMAGE DISPLAY FLAG
15 | imgWidth = 180
16 | imgHeight = 120
17 |
18 |
19 | #####################################################
20 |
21 | global countFolder
22 | cap = cv2.VideoCapture(cameraNo)
23 | cap.set(3, 640)
24 | cap.set(4, 480)
25 | cap.set(10,cameraBrightness)
26 |
27 |
28 | count = 0
29 | countSave =0
30 |
31 | def saveDataFunc():
32 | global countFolder
33 | countFolder = 0
34 | while os.path.exists( myPath+ str(countFolder)):
35 | countFolder += 1
36 | os.makedirs(myPath + str(countFolder))
37 |
38 | if saveData:saveDataFunc()
39 |
40 |
41 | while True:
42 |
43 | success, img = cap.read()
44 | img = cv2.resize(img,(imgWidth,imgHeight))
45 | if grayImage:img = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
46 | if saveData:
47 | blur = cv2.Laplacian(img, cv2.CV_64F).var()
48 | if count % moduleVal ==0 and blur > minBlur:
49 | nowTime = time.time()
50 | cv2.imwrite(myPath + str(countFolder) +
51 | '/' + str(countSave)+"_"+ str(int(blur))+"_"+str(nowTime)+".png", img)
52 | countSave+=1
53 | count += 1
54 |
55 | if showImage:
56 | cv2.imshow("Image", img)
57 |
58 | if cv2.waitKey(1) & 0xFF == ord('q'):
59 | break
60 |
61 | cap.release()
62 | cv2.destroyAllWindows()
63 |
--------------------------------------------------------------------------------
/Intermediate/Custom Object Detection/haarcascades/haarcascade_licence_plate_rus_16stages.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | 64 16
7 |
8 | <_>
9 |
10 |
11 | <_>
12 |
13 | <_>
14 |
15 |
16 |
17 | <_>
18 | 32 2 8 6 -1.
19 | <_>
20 | 32 4 8 2 3.
21 | 0
22 | 1.6915600746870041e-002
23 | -9.5547717809677124e-001
24 | 8.9129137992858887e-001
25 | <_>
26 |
27 | <_>
28 |
29 |
30 |
31 | <_>
32 | 0 4 6 10 -1.
33 | <_>
34 | 3 4 3 10 2.
35 | 0
36 | 2.4228349328041077e-002
37 | -9.2089319229125977e-001
38 | 8.8723921775817871e-001
39 | <_>
40 |
41 | <_>
42 |
43 |
44 |
45 | <_>
46 | 55 0 8 6 -1.
47 | <_>
48 | 55 0 4 3 2.
49 | <_>
50 | 59 3 4 3 2.
51 | 0
52 | -1.0168660432100296e-002
53 | 8.8940089941024780e-001
54 | -7.7847331762313843e-001
55 | <_>
56 |
57 | <_>
58 |
59 |
60 |
61 | <_>
62 | 44 7 4 9 -1.
63 | <_>
64 | 44 10 4 3 3.
65 | 0
66 | 2.0863260142505169e-003
67 | -8.7998157739639282e-001
68 | 5.8651781082153320e-001
69 | -2.0683259963989258e+000
70 | -1
71 | -1
72 | <_>
73 |
74 |
75 | <_>
76 |
77 | <_>
78 |
79 |
80 |
81 | <_>
82 | 29 1 16 4 -1.
83 | <_>
84 | 29 3 16 2 2.
85 | 0
86 | 2.9062159359455109e-002
87 | -8.7765061855316162e-001
88 | 8.5373121500015259e-001
89 | <_>
90 |
91 | <_>
92 |
93 |
94 |
95 | <_>
96 | 0 5 9 8 -1.
97 | <_>
98 | 3 5 3 8 3.
99 | 0
100 | 2.3903399705886841e-002
101 | -9.2079448699951172e-001
102 | 7.5155001878738403e-001
103 | <_>
104 |
105 | <_>
106 |
107 |
108 |
109 | <_>
110 | 44 0 20 14 -1.
111 | <_>
112 | 44 0 10 7 2.
113 | <_>
114 | 54 7 10 7 2.
115 | 0
116 | -3.5404648631811142e-002
117 | 6.7834627628326416e-001
118 | -9.0937072038650513e-001
119 | <_>
120 |
121 | <_>
122 |
123 |
124 |
125 | <_>
126 | 41 7 6 9 -1.
127 | <_>
128 | 43 7 2 9 3.
129 | 0
130 | 6.2988721765577793e-003
131 | -8.1054258346557617e-001
132 | 5.8985030651092529e-001
133 | <_>
134 |
135 | <_>
136 |
137 |
138 |
139 | <_>
140 | 0 4 21 4 -1.
141 | <_>
142 | 7 4 7 4 3.
143 | 0
144 | 3.4959490876644850e-003
145 | -9.7632282972335815e-001
146 | 4.5473039150238037e-001
147 | -1.6632349491119385e+000
148 | 0
149 | -1
150 | <_>
151 |
152 |
153 | <_>
154 |
155 | <_>
156 |
157 |
158 |
159 | <_>
160 | 31 2 11 6 -1.
161 | <_>
162 | 31 4 11 2 3.
163 | 0
164 | 2.3864099755883217e-002
165 | -9.3137168884277344e-001
166 | 8.2478952407836914e-001
167 | <_>
168 |
169 | <_>
170 |
171 |
172 |
173 | <_>
174 | 56 3 6 11 -1.
175 | <_>
176 | 59 3 3 11 2.
177 | 0
178 | -2.5775209069252014e-002
179 | 8.5526448488235474e-001
180 | -8.7574672698974609e-001
181 | <_>
182 |
183 | <_>
184 |
185 |
186 |
187 | <_>
188 | 32 14 32 2 -1.
189 | <_>
190 | 32 15 32 1 2.
191 | 0
192 | -1.0646049864590168e-002
193 | 8.5167151689529419e-001
194 | -6.7789041996002197e-001
195 | <_>
196 |
197 | <_>
198 |
199 |
200 |
201 | <_>
202 | 0 2 8 14 -1.
203 | <_>
204 | 4 2 4 14 2.
205 | 0
206 | 2.7000989764928818e-002
207 | -8.0041092634201050e-001
208 | 6.4893317222595215e-001
209 | <_>
210 |
211 | <_>
212 |
213 |
214 |
215 | <_>
216 | 19 0 22 6 -1.
217 | <_>
218 | 19 0 11 3 2.
219 | <_>
220 | 30 3 11 3 2.
221 | 0
222 | 5.2989721298217773e-003
223 | -9.5342522859573364e-001
224 | 5.0140267610549927e-001
225 | -1.3346730470657349e+000
226 | 1
227 | -1
228 | <_>
229 |
230 |
231 | <_>
232 |
233 | <_>
234 |
235 |
236 |
237 | <_>
238 | 56 0 6 6 -1.
239 | <_>
240 | 56 0 3 3 2.
241 | <_>
242 | 59 3 3 3 2.
243 | 0
244 | -6.9233630783855915e-003
245 | 8.2654470205307007e-001
246 | -8.5396027565002441e-001
247 | <_>
248 |
249 | <_>
250 |
251 |
252 |
253 | <_>
254 | 32 0 14 12 -1.
255 | <_>
256 | 32 0 7 6 2.
257 | <_>
258 | 39 6 7 6 2.
259 | 0
260 | 1.2539249658584595e-001
261 | -1.2996139936149120e-002
262 | -3.2377028808593750e+003
263 | <_>
264 |
265 | <_>
266 |
267 |
268 |
269 | <_>
270 | 2 1 43 4 -1.
271 | <_>
272 | 2 3 43 2 2.
273 | 0
274 | 6.3474893569946289e-002
275 | -6.4648061990737915e-001
276 | 8.2302427291870117e-001
277 | <_>
278 |
279 | <_>
280 |
281 |
282 |
283 | <_>
284 | 34 10 30 5 -1.
285 | <_>
286 | 44 10 10 5 3.
287 | 0
288 | 4.2217150330543518e-002
289 | -7.5190877914428711e-001
290 | 6.3705182075500488e-001
291 | <_>
292 |
293 | <_>
294 |
295 |
296 |
297 | <_>
298 | 0 9 9 5 -1.
299 | <_>
300 | 3 9 3 5 3.
301 | 0
302 | 2.0000640302896500e-002
303 | -6.2077498435974121e-001
304 | 6.1317932605743408e-001
305 | -1.6521669626235962e+000
306 | 2
307 | -1
308 | <_>
309 |
310 |
311 | <_>
312 |
313 | <_>
314 |
315 |
316 |
317 | <_>
318 | 2 1 43 6 -1.
319 | <_>
320 | 2 3 43 2 3.
321 | 0
322 | 9.2297486960887909e-002
323 | -7.2764229774475098e-001
324 | 8.0554759502410889e-001
325 | <_>
326 |
327 | <_>
328 |
329 |
330 |
331 | <_>
332 | 53 4 9 8 -1.
333 | <_>
334 | 56 4 3 8 3.
335 | 0
336 | 2.7613969519734383e-002
337 | -7.0769268274307251e-001
338 | 7.3315787315368652e-001
339 | <_>
340 |
341 | <_>
342 |
343 |
344 |
345 | <_>
346 | 36 4 14 8 -1.
347 | <_>
348 | 36 4 7 4 2.
349 | <_>
350 | 43 8 7 4 2.
351 | 0
352 | 1.2465449981391430e-002
353 | -8.4359270334243774e-001
354 | 5.7046437263488770e-001
355 | <_>
356 |
357 | <_>
358 |
359 |
360 |
361 | <_>
362 | 14 14 49 2 -1.
363 | <_>
364 | 14 15 49 1 2.
365 | 0
366 | -2.3886829614639282e-002
367 | 8.2656508684158325e-001
368 | -5.2783298492431641e-001
369 | -1.4523630142211914e+000
370 | 3
371 | -1
372 | <_>
373 |
374 |
375 | <_>
376 |
377 | <_>
378 |
379 |
380 |
381 | <_>
382 | 0 5 4 9 -1.
383 | <_>
384 | 2 5 2 9 2.
385 | 0
386 | 1.8821349367499352e-002
387 | -8.1122857332229614e-001
388 | 6.9127470254898071e-001
389 | <_>
390 |
391 | <_>
392 |
393 |
394 |
395 | <_>
396 | 21 1 38 4 -1.
397 | <_>
398 | 21 3 38 2 2.
399 | 0
400 | 6.1703320592641830e-002
401 | -7.6482647657394409e-001
402 | 6.4212161302566528e-001
403 | <_>
404 |
405 | <_>
406 |
407 |
408 |
409 | <_>
410 | 44 12 18 3 -1.
411 | <_>
412 | 53 12 9 3 2.
413 | 0
414 | -1.6298670321702957e-002
415 | 5.0207728147506714e-001
416 | -8.4020161628723145e-001
417 | <_>
418 |
419 | <_>
420 |
421 |
422 |
423 | <_>
424 | 10 4 9 3 -1.
425 | <_>
426 | 13 4 3 3 3.
427 | 0
428 | -4.9458951689302921e-003
429 | 6.1991941928863525e-001
430 | -6.1633539199829102e-001
431 | <_>
432 |
433 | <_>
434 |
435 |
436 |
437 | <_>
438 | 40 4 10 4 -1.
439 | <_>
440 | 45 4 5 4 2.
441 | 0
442 | -5.1894597709178925e-003
443 | 4.4975179433822632e-001
444 | -8.0651968717575073e-001
445 | <_>
446 |
447 | <_>
448 |
449 |
450 |
451 | <_>
452 | 17 14 47 2 -1.
453 | <_>
454 | 17 15 47 1 2.
455 | 0
456 | -1.8824130296707153e-002
457 | 6.1992841958999634e-001
458 | -5.5643159151077271e-001
459 | <_>
460 |
461 | <_>
462 |
463 |
464 |
465 | <_>
466 | 8 5 4 7 -1.
467 | <_>
468 | 10 5 2 7 2.
469 | 0
470 | 5.6571601890027523e-003
471 | -4.8346561193466187e-001
472 | 6.8647360801696777e-001
473 | -2.2358059883117676e+000
474 | 4
475 | -1
476 | <_>
477 |
478 |
479 | <_>
480 |
481 | <_>
482 |
483 |
484 |
485 | <_>
486 | 56 0 6 6 -1.
487 | <_>
488 | 56 0 3 3 2.
489 | <_>
490 | 59 3 3 3 2.
491 | 0
492 | -9.1503243893384933e-003
493 | 6.8174481391906738e-001
494 | -7.7866071462631226e-001
495 | <_>
496 |
497 | <_>
498 |
499 |
500 |
501 | <_>
502 | 0 0 6 6 -1.
503 | <_>
504 | 0 0 3 3 2.
505 | <_>
506 | 3 3 3 3 2.
507 | 0
508 | 7.4933180585503578e-003
509 | -6.8696027994155884e-001
510 | 6.6913938522338867e-001
511 | <_>
512 |
513 | <_>
514 |
515 |
516 |
517 | <_>
518 | 13 4 48 2 -1.
519 | <_>
520 | 29 4 16 2 3.
521 | 0
522 | 4.5296419411897659e-002
523 | -7.3576509952545166e-001
524 | 5.9453499317169189e-001
525 | <_>
526 |
527 | <_>
528 |
529 |
530 |
531 | <_>
532 | 42 1 6 15 -1.
533 | <_>
534 | 42 6 6 5 3.
535 | 0
536 | 1.1669679544866085e-002
537 | -8.4733831882476807e-001
538 | 4.5461329817771912e-001
539 | <_>
540 |
541 | <_>
542 |
543 |
544 |
545 | <_>
546 | 30 8 3 5 -1.
547 | <_>
548 | 31 8 1 5 3.
549 | 0
550 | 2.5769430212676525e-003
551 | -5.8270388841629028e-001
552 | 7.7900522947311401e-001
553 | <_>
554 |
555 | <_>
556 |
557 |
558 |
559 | <_>
560 | 55 10 8 6 -1.
561 | <_>
562 | 55 13 8 3 2.
563 | 0
564 | -1.4139170525595546e-003
565 | 4.5126929879188538e-001
566 | -9.0696328878402710e-001
567 | -1.8782069683074951e+000
568 | 5
569 | -1
570 | <_>
571 |
572 |
573 | <_>
574 |
575 | <_>
576 |
577 |
578 |
579 | <_>
580 | 4 6 4 7 -1.
581 | <_>
582 | 6 6 2 7 2.
583 | 0
584 | -5.3149578161537647e-003
585 | 6.5218788385391235e-001
586 | -7.9464268684387207e-001
587 | <_>
588 |
589 | <_>
590 |
591 |
592 |
593 | <_>
594 | 56 3 6 8 -1.
595 | <_>
596 | 59 3 3 8 2.
597 | 0
598 | -2.2906960919499397e-002
599 | 6.6433382034301758e-001
600 | -7.3633247613906860e-001
601 | <_>
602 |
603 | <_>
604 |
605 |
606 |
607 | <_>
608 | 37 2 4 6 -1.
609 | <_>
610 | 37 4 4 2 3.
611 | 0
612 | 9.4887977465987206e-003
613 | -8.2612031698226929e-001
614 | 4.9333500862121582e-001
615 | <_>
616 |
617 | <_>
618 |
619 |
620 |
621 | <_>
622 | 0 10 30 6 -1.
623 | <_>
624 | 0 12 30 2 3.
625 | 0
626 | 4.5138411223888397e-002
627 | -5.4704028367996216e-001
628 | 7.6927912235260010e-001
629 | <_>
630 |
631 | <_>
632 |
633 |
634 |
635 | <_>
636 | 0 4 21 12 -1.
637 | <_>
638 | 7 4 7 12 3.
639 | 0
640 | 2.5049019604921341e-002
641 | -8.6739641427993774e-001
642 | 5.2807968854904175e-001
643 | -1.0597369670867920e+000
644 | 6
645 | -1
646 | <_>
647 |
648 |
649 | <_>
650 |
651 | <_>
652 |
653 |
654 |
655 | <_>
656 | 44 0 1 14 -1.
657 | <_>
658 | 44 7 1 7 2.
659 | 0
660 | 6.6414438188076019e-003
661 | -7.7290147542953491e-001
662 | 6.9723731279373169e-001
663 | <_>
664 |
665 | <_>
666 |
667 |
668 |
669 | <_>
670 | 54 3 4 3 -1.
671 | <_>
672 | 56 3 2 3 2.
673 | 0
674 | 2.4703629314899445e-003
675 | -7.4289917945861816e-001
676 | 6.6825848817825317e-001
677 | <_>
678 |
679 | <_>
680 |
681 |
682 |
683 | <_>
684 | 32 0 30 6 -1.
685 | <_>
686 | 32 0 15 3 2.
687 | <_>
688 | 47 3 15 3 2.
689 | 0
690 | -2.2910499945282936e-002
691 | 4.3986389040946960e-001
692 | -9.0588808059692383e-001
693 | <_>
694 |
695 | <_>
696 |
697 |
698 |
699 | <_>
700 | 0 8 9 7 -1.
701 | <_>
702 | 3 8 3 7 3.
703 | 0
704 | 3.4193221479654312e-002
705 | -6.9507479667663574e-001
706 | 6.2501090764999390e-001
707 | <_>
708 |
709 | <_>
710 |
711 |
712 |
713 | <_>
714 | 30 10 3 3 -1.
715 | <_>
716 | 31 10 1 3 3.
717 | 0
718 | 1.5060020377859473e-003
719 | -6.8670761585235596e-001
720 | 8.2241541147232056e-001
721 | <_>
722 |
723 | <_>
724 |
725 |
726 |
727 | <_>
728 | 21 3 24 4 -1.
729 | <_>
730 | 29 3 8 4 3.
731 | 0
732 | 1.9838380467263050e-005
733 | -9.2727631330490112e-001
734 | 6.4723730087280273e-001
735 | <_>
736 |
737 | <_>
738 |
739 |
740 |
741 | <_>
742 | 42 3 12 6 -1.
743 | <_>
744 | 46 3 4 6 3.
745 | 0
746 | -2.2170299416757189e-005
747 | 5.6555831432342529e-001
748 | -9.6788132190704346e-001
749 | -1.4993519783020020e+000
750 | 7
751 | -1
752 | <_>
753 |
754 |
755 | <_>
756 |
757 | <_>
758 |
759 |
760 |
761 | <_>
762 | 56 9 6 6 -1.
763 | <_>
764 | 59 9 3 6 2.
765 | 0
766 | -1.1395259760320187e-002
767 | 7.1383631229400635e-001
768 | -8.7429678440093994e-001
769 | <_>
770 |
771 | <_>
772 |
773 |
774 |
775 | <_>
776 | 6 4 1 6 -1.
777 | <_>
778 | 6 7 1 3 2.
779 | 0
780 | -2.1864590235054493e-003
781 | 8.5311782360076904e-001
782 | -6.4777731895446777e-001
783 | <_>
784 |
785 | <_>
786 |
787 |
788 |
789 | <_>
790 | 0 0 12 4 -1.
791 | <_>
792 | 0 0 6 2 2.
793 | <_>
794 | 6 2 6 2 2.
795 | 0
796 | 2.3193720262497663e-003
797 | -7.6411879062652588e-001
798 | 7.1867972612380981e-001
799 | <_>
800 |
801 | <_>
802 |
803 |
804 |
805 | <_>
806 | 43 12 18 2 -1.
807 | <_>
808 | 52 12 9 2 2.
809 | 0
810 | -7.9916073009371758e-003
811 | 6.6442942619323730e-001
812 | -7.9540950059890747e-001
813 | <_>
814 |
815 | <_>
816 |
817 |
818 |
819 | <_>
820 | 9 5 2 8 -1.
821 | <_>
822 | 10 5 1 8 2.
823 | 0
824 | 1.4212740352377295e-003
825 | -6.3904231786727905e-001
826 | 7.5050598382949829e-001
827 | -8.4829801321029663e-001
828 | 8
829 | -1
830 | <_>
831 |
832 |
833 | <_>
834 |
835 | <_>
836 |
837 |
838 |
839 | <_>
840 | 1 9 6 3 -1.
841 | <_>
842 | 3 9 2 3 3.
843 | 0
844 | 6.4091659151017666e-003
845 | -8.8425230979919434e-001
846 | 9.9953681230545044e-001
847 | <_>
848 |
849 | <_>
850 |
851 |
852 |
853 | <_>
854 | 56 8 2 8 -1.
855 | <_>
856 | 56 12 2 4 2.
857 | 0
858 | -6.3316390151157975e-004
859 | 8.3822172880172729e-001
860 | -9.8322170972824097e-001
861 | <_>
862 |
863 | <_>
864 |
865 |
866 |
867 | <_>
868 | 24 2 6 13 -1.
869 | <_>
870 | 26 2 2 13 3.
871 | 0
872 | -6.4947169448714703e-005
873 | 1.
874 | -9.1822808980941772e-001
875 | <_>
876 |
877 | <_>
878 |
879 |
880 |
881 | <_>
882 | 33 7 24 4 -1.
883 | <_>
884 | 41 7 8 4 3.
885 | 0
886 | 5.3404141217470169e-003
887 | -9.4317251443862915e-001
888 | 9.0425151586532593e-001
889 | -6.0007210820913315e-002
890 | 9
891 | -1
892 | <_>
893 |
894 |
895 | <_>
896 |
897 | <_>
898 |
899 |
900 |
901 | <_>
902 | 1 1 57 4 -1.
903 | <_>
904 | 1 3 57 2 2.
905 | 0
906 | 1.0755469650030136e-001
907 | -7.1647202968597412e-001
908 | 8.7827038764953613e-001
909 | <_>
910 |
911 | <_>
912 |
913 |
914 |
915 | <_>
916 | 0 2 6 14 -1.
917 | <_>
918 | 3 2 3 14 2.
919 | 0
920 | 3.1668949872255325e-002
921 | -8.7051069736480713e-001
922 | 5.8807212114334106e-001
923 | <_>
924 |
925 | <_>
926 |
927 |
928 |
929 | <_>
930 | 52 3 6 10 -1.
931 | <_>
932 | 54 3 2 10 3.
933 | 0
934 | -1.0572380386292934e-002
935 | 6.2438100576400757e-001
936 | -7.4027371406555176e-001
937 | <_>
938 |
939 | <_>
940 |
941 |
942 |
943 | <_>
944 | 1 14 61 2 -1.
945 | <_>
946 | 1 15 61 1 2.
947 | 0
948 | -2.7396259829401970e-002
949 | 8.9776748418807983e-001
950 | -5.2986758947372437e-001
951 | <_>
952 |
953 | <_>
954 |
955 |
956 |
957 | <_>
958 | 28 0 11 12 -1.
959 | <_>
960 | 28 4 11 4 3.
961 | 0
962 | 2.5918649509549141e-002
963 | -8.6482518911361694e-001
964 | 5.3121817111968994e-001
965 | -9.6125108003616333e-001
966 | 10
967 | -1
968 | <_>
969 |
970 |
971 | <_>
972 |
973 | <_>
974 |
975 |
976 |
977 | <_>
978 | 22 1 41 4 -1.
979 | <_>
980 | 22 3 41 2 2.
981 | 0
982 | 7.1039132773876190e-002
983 | -7.5719678401947021e-001
984 | 7.5645631551742554e-001
985 | <_>
986 |
987 | <_>
988 |
989 |
990 |
991 | <_>
992 | 41 6 6 8 -1.
993 | <_>
994 | 43 6 2 8 3.
995 | 0
996 | 7.6241148635745049e-003
997 | -7.9783838987350464e-001
998 | 7.1733069419860840e-001
999 | <_>
1000 |
1001 | <_>
1002 |
1003 |
1004 |
1005 | <_>
1006 | 50 9 14 5 -1.
1007 | <_>
1008 | 57 9 7 5 2.
1009 | 0
1010 | -2.7092639356851578e-002
1011 | 6.0071170330047607e-001
1012 | -8.4794402122497559e-001
1013 | <_>
1014 |
1015 | <_>
1016 |
1017 |
1018 |
1019 | <_>
1020 | 4 1 12 5 -1.
1021 | <_>
1022 | 10 1 6 5 2.
1023 | 0
1024 | -8.1267888890579343e-004
1025 | 5.9364068508148193e-001
1026 | -8.9295238256454468e-001
1027 | <_>
1028 |
1029 | <_>
1030 |
1031 |
1032 |
1033 | <_>
1034 | 37 9 3 3 -1.
1035 | <_>
1036 | 38 9 1 3 3.
1037 | 0
1038 | 8.3705072756856680e-004
1039 | -6.4887362718582153e-001
1040 | 7.8537952899932861e-001
1041 | -1.0618970394134521e+000
1042 | 11
1043 | -1
1044 | <_>
1045 |
1046 |
1047 | <_>
1048 |
1049 | <_>
1050 |
1051 |
1052 |
1053 | <_>
1054 | 54 0 10 6 -1.
1055 | <_>
1056 | 54 0 5 3 2.
1057 | <_>
1058 | 59 3 5 3 2.
1059 | 0
1060 | -9.7556859254837036e-003
1061 | 7.6982218027114868e-001
1062 | -8.5293501615524292e-001
1063 | <_>
1064 |
1065 | <_>
1066 |
1067 |
1068 |
1069 | <_>
1070 | 47 0 6 11 -1.
1071 | <_>
1072 | 49 0 2 11 3.
1073 | 0
1074 | -8.6617246270179749e-003
1075 | 8.4029090404510498e-001
1076 | -7.1949690580368042e-001
1077 | <_>
1078 |
1079 | <_>
1080 |
1081 |
1082 |
1083 | <_>
1084 | 19 2 20 2 -1.
1085 | <_>
1086 | 19 3 20 1 2.
1087 | 0
1088 | 1.6897840425372124e-002
1089 | -5.3601992130279541e-001
1090 | 9.5484441518783569e-001
1091 | <_>
1092 |
1093 | <_>
1094 |
1095 |
1096 |
1097 | <_>
1098 | 14 4 6 11 -1.
1099 | <_>
1100 | 17 4 3 11 2.
1101 | 0
1102 | 4.7526158596156165e-005
1103 | -7.6412862539291382e-001
1104 | 7.5398761034011841e-001
1105 | <_>
1106 |
1107 | <_>
1108 |
1109 |
1110 |
1111 | <_>
1112 | 31 9 33 2 -1.
1113 | <_>
1114 | 42 9 11 2 3.
1115 | 0
1116 | 6.5607670694589615e-003
1117 | -9.9346441030502319e-001
1118 | 6.4864277839660645e-001
1119 | -7.3307347297668457e-001
1120 | 12
1121 | -1
1122 | <_>
1123 |
1124 |
1125 | <_>
1126 |
1127 | <_>
1128 |
1129 |
1130 |
1131 | <_>
1132 | 6 1 53 6 -1.
1133 | <_>
1134 | 6 3 53 2 3.
1135 | 0
1136 | 1.0103269666433334e-001
1137 | -7.3275578022003174e-001
1138 | 8.4619927406311035e-001
1139 | <_>
1140 |
1141 | <_>
1142 |
1143 |
1144 |
1145 | <_>
1146 | 49 9 4 6 -1.
1147 | <_>
1148 | 49 9 2 3 2.
1149 | <_>
1150 | 51 12 2 3 2.
1151 | 0
1152 | -2.8920811018906534e-004
1153 | 7.1564781665802002e-001
1154 | -8.8221758604049683e-001
1155 | <_>
1156 |
1157 | <_>
1158 |
1159 |
1160 |
1161 | <_>
1162 | 0 9 30 7 -1.
1163 | <_>
1164 | 10 9 10 7 3.
1165 | 0
1166 | 1.0838840156793594e-002
1167 | -8.7420248985290527e-001
1168 | 6.0648679733276367e-001
1169 | <_>
1170 |
1171 | <_>
1172 |
1173 |
1174 |
1175 | <_>
1176 | 40 4 6 2 -1.
1177 | <_>
1178 | 42 4 2 2 3.
1179 | 0
1180 | 5.0803890917450190e-004
1181 | -9.0554022789001465e-001
1182 | 6.4213967323303223e-001
1183 | <_>
1184 |
1185 | <_>
1186 |
1187 |
1188 |
1189 | <_>
1190 | 1 9 6 1 -1.
1191 | <_>
1192 | 3 9 2 1 3.
1193 | 0
1194 | 2.3357039317488670e-003
1195 | -9.2574918270111084e-001
1196 | 8.6384928226470947e-001
1197 | <_>
1198 |
1199 | <_>
1200 |
1201 |
1202 |
1203 | <_>
1204 | 47 3 4 10 -1.
1205 | <_>
1206 | 47 8 4 5 2.
1207 | 0
1208 | 8.0239427916239947e-005
1209 | -9.9618428945541382e-001
1210 | 9.5355111360549927e-001
1211 | <_>
1212 |
1213 | <_>
1214 |
1215 |
1216 |
1217 | <_>
1218 | 31 5 30 11 -1.
1219 | <_>
1220 | 41 5 10 11 3.
1221 | 0
1222 | 3.2030208967626095e-003
1223 | -1.
1224 | 1.0001050233840942e+000
1225 | <_>
1226 |
1227 | <_>
1228 |
1229 |
1230 |
1231 | <_>
1232 | 0 0 2 1 -1.
1233 | <_>
1234 | 1 0 1 1 2.
1235 | 0
1236 | 0.
1237 | 0.
1238 | -1.
1239 | <_>
1240 |
1241 | <_>
1242 |
1243 |
1244 |
1245 | <_>
1246 | 21 3 42 5 -1.
1247 | <_>
1248 | 35 3 14 5 3.
1249 | 0
1250 | 2.6143440045416355e-003
1251 | -1.
1252 | 1.0002139806747437e+000
1253 | <_>
1254 |
1255 | <_>
1256 |
1257 |
1258 |
1259 | <_>
1260 | 0 0 2 1 -1.
1261 | <_>
1262 | 1 0 1 1 2.
1263 | 0
1264 | 0.
1265 | 0.
1266 | -1.
1267 | <_>
1268 |
1269 | <_>
1270 |
1271 |
1272 |
1273 | <_>
1274 | 8 5 30 9 -1.
1275 | <_>
1276 | 8 8 30 3 3.
1277 | 0
1278 | -7.0475979009643197e-004
1279 | 1.
1280 | -9.9976968765258789e-001
1281 | <_>
1282 |
1283 | <_>
1284 |
1285 |
1286 |
1287 | <_>
1288 | 3 12 33 3 -1.
1289 | <_>
1290 | 14 12 11 3 3.
1291 | 0
1292 | 2.1271279547363520e-003
1293 | -9.9694627523422241e-001
1294 | 1.0002720355987549e+000
1295 | <_>
1296 |
1297 | <_>
1298 |
1299 |
1300 |
1301 | <_>
1302 | 0 0 3 2 -1.
1303 | <_>
1304 | 1 0 1 2 3.
1305 | 0
1306 | -2.4224430671893060e-004
1307 | 1.
1308 | -1.
1309 | <_>
1310 |
1311 | <_>
1312 |
1313 |
1314 |
1315 | <_>
1316 | 46 4 3 8 -1.
1317 | <_>
1318 | 47 4 1 8 3.
1319 | 0
1320 | 7.4700301047414541e-004
1321 | -9.9108231067657471e-001
1322 | 9.9941182136535645e-001
1323 | -1.0991690158843994e+000
1324 | 13
1325 | -1
1326 | <_>
1327 |
1328 |
1329 | <_>
1330 |
1331 | <_>
1332 |
1333 |
1334 |
1335 | <_>
1336 | 1 2 6 5 -1.
1337 | <_>
1338 | 3 2 2 5 3.
1339 | 0
1340 | 1.7227890202775598e-003
1341 | -9.3608891963958740e-001
1342 | 8.7251222133636475e-001
1343 | <_>
1344 |
1345 | <_>
1346 |
1347 |
1348 |
1349 | <_>
1350 | 0 3 18 5 -1.
1351 | <_>
1352 | 6 3 6 5 3.
1353 | 0
1354 | 2.7599320746958256e-003
1355 | -9.9757021665573120e-001
1356 | 1.0000289678573608e+000
1357 | <_>
1358 |
1359 | <_>
1360 |
1361 |
1362 |
1363 | <_>
1364 | 3 1 6 14 -1.
1365 | <_>
1366 | 6 1 3 14 2.
1367 | 0
1368 | -8.9444358309265226e-005
1369 | 1.
1370 | -9.9264812469482422e-001
1371 | <_>
1372 |
1373 | <_>
1374 |
1375 |
1376 |
1377 | <_>
1378 | 3 6 2 10 -1.
1379 | <_>
1380 | 3 11 2 5 2.
1381 | 0
1382 | -2.7962020249105990e-004
1383 | 8.2833290100097656e-001
1384 | -9.8444151878356934e-001
1385 | <_>
1386 |
1387 | <_>
1388 |
1389 |
1390 |
1391 | <_>
1392 | 42 0 4 6 -1.
1393 | <_>
1394 | 42 0 2 3 2.
1395 | <_>
1396 | 44 3 2 3 2.
1397 | 0
1398 | -2.7560539820115082e-005
1399 | 1.
1400 | -9.9543339014053345e-001
1401 | -9.1314977407455444e-001
1402 | 14
1403 | -1
1404 |
1405 |
--------------------------------------------------------------------------------
/Intermediate/Custom Object Detection/haarcascades/haarcascade_russian_plate_number.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | BOOST
5 | HAAR
6 | 20
7 | 60
8 |
9 | GAB
10 | 9.9500000476837158e-001
11 | 5.0000000000000000e-001
12 | 9.4999999999999996e-001
13 | 1
14 | 100
15 |
16 | 0
17 | 1
18 | ALL
19 | 20
20 |
21 |
22 | <_>
23 | 6
24 | -1.3110191822052002e+000
25 |
26 | <_>
27 |
28 | 0 -1 193 1.0079263709485531e-002
29 |
30 | -8.1339186429977417e-001 5.0277775526046753e-001
31 | <_>
32 |
33 | 0 -1 94 -2.2060684859752655e-002
34 |
35 | 7.9418992996215820e-001 -5.0896102190017700e-001
36 | <_>
37 |
38 | 0 -1 18 -4.8777908086776733e-002
39 |
40 | 7.1656656265258789e-001 -4.1640335321426392e-001
41 | <_>
42 |
43 | 0 -1 35 1.0387318208813667e-002
44 |
45 | 3.7618312239646912e-001 -8.5504144430160522e-001
46 | <_>
47 |
48 | 0 -1 191 -9.4083719886839390e-004
49 |
50 | 4.2658549547195435e-001 -5.7729166746139526e-001
51 | <_>
52 |
53 | 0 -1 48 -8.2391249015927315e-003
54 |
55 | 8.2346975803375244e-001 -3.7503159046173096e-001
56 |
57 | <_>
58 | 6
59 | -1.1759783029556274e+000
60 |
61 | <_>
62 |
63 | 0 -1 21 1.7386786639690399e-001
64 |
65 | -6.8139964342117310e-001 6.0767590999603271e-001
66 | <_>
67 |
68 | 0 -1 28 -1.9797295331954956e-002
69 |
70 | 7.8072130680084229e-001 -4.4399836659431458e-001
71 | <_>
72 |
73 | 0 -1 46 -1.0154811898246408e-003
74 |
75 | 3.3383268117904663e-001 -7.6357340812683105e-001
76 | <_>
77 |
78 | 0 -1 138 2.4954911321401596e-002
79 |
80 | -3.9979115128517151e-001 6.8620890378952026e-001
81 | <_>
82 |
83 | 0 -1 25 2.8837744612246752e-003
84 |
85 | -2.7928480505943298e-001 7.9980146884918213e-001
86 | <_>
87 |
88 | 0 -1 26 -3.8839362561702728e-002
89 |
90 | -7.8442335128784180e-001 3.4929576516151428e-001
91 |
92 | <_>
93 | 6
94 | -1.7856997251510620e+000
95 |
96 | <_>
97 |
98 | 0 -1 34 2.7977079153060913e-002
99 |
100 | -5.8424139022827148e-001 6.6850829124450684e-001
101 | <_>
102 |
103 | 0 -1 171 1.9148588180541992e-002
104 |
105 | -6.5457659959793091e-001 4.0804430842399597e-001
106 | <_>
107 |
108 | 0 -1 7 1.1955041438341141e-002
109 |
110 | -4.2002618312835693e-001 5.6217432022094727e-001
111 | <_>
112 |
113 | 0 -1 45 -2.1218564361333847e-002
114 |
115 | 7.1812576055526733e-001 -3.0354043841362000e-001
116 | <_>
117 |
118 | 0 -1 108 2.0117280655540526e-004
119 |
120 | -6.1749500036239624e-001 3.5549193620681763e-001
121 | <_>
122 |
123 | 0 -1 122 3.9725980604998767e-004
124 |
125 | -2.6844096183776855e-001 7.6771658658981323e-001
126 |
127 | <_>
128 | 9
129 | -1.1837021112442017e+000
130 |
131 | <_>
132 |
133 | 0 -1 202 -1.3291766867041588e-002
134 |
135 | 4.5248869061470032e-001 -5.8849954605102539e-001
136 | <_>
137 |
138 | 0 -1 79 -4.8353265970945358e-002
139 |
140 | 7.0951640605926514e-001 -3.2546108961105347e-001
141 | <_>
142 |
143 | 0 -1 22 2.6532993651926517e-003
144 |
145 | -2.5343564152717590e-001 7.6588714122772217e-001
146 | <_>
147 |
148 | 0 -1 66 -3.8548894226551056e-002
149 |
150 | 5.8126109838485718e-001 -3.0813106894493103e-001
151 | <_>
152 |
153 | 0 -1 41 -6.8602780811488628e-004
154 |
155 | 2.6361095905303955e-001 -7.2226840257644653e-001
156 | <_>
157 |
158 | 0 -1 69 -2.5726919993758202e-002
159 |
160 | -8.7153857946395874e-001 1.9438524544239044e-001
161 | <_>
162 |
163 | 0 -1 24 8.4192806389182806e-004
164 |
165 | -3.6150649189949036e-001 5.2065432071685791e-001
166 | <_>
167 |
168 | 0 -1 62 -2.6956878136843443e-003
169 |
170 | 5.9945529699325562e-001 -2.8344830870628357e-001
171 | <_>
172 |
173 | 0 -1 112 3.0572075396776199e-002
174 |
175 | -3.0688971281051636e-001 5.7261526584625244e-001
176 |
177 | <_>
178 | 8
179 | -1.4687808752059937e+000
180 |
181 | <_>
182 |
183 | 0 -1 5 3.1486168503761292e-002
184 |
185 | -5.7836848497390747e-001 3.7931033968925476e-001
186 | <_>
187 |
188 | 0 -1 150 2.8311354108154774e-003
189 |
190 | -5.7888329029083252e-001 3.2841828465461731e-001
191 | <_>
192 |
193 | 0 -1 76 -4.2060948908329010e-002
194 |
195 | 5.5578106641769409e-001 -3.2662427425384521e-001
196 | <_>
197 |
198 | 0 -1 115 6.2936875037848949e-003
199 |
200 | -2.1032968163490295e-001 7.8646916151046753e-001
201 | <_>
202 |
203 | 0 -1 51 7.0570126175880432e-002
204 |
205 | -4.3683132529258728e-001 4.0298295021057129e-001
206 | <_>
207 |
208 | 0 -1 135 2.5173835456371307e-003
209 |
210 | -2.0461565256118774e-001 8.2858163118362427e-001
211 | <_>
212 |
213 | 0 -1 102 1.5648975968360901e-003
214 |
215 | -2.4848082661628723e-001 6.0209411382675171e-001
216 | <_>
217 |
218 | 0 -1 177 -3.5970686003565788e-003
219 |
220 | 2.3294737935066223e-001 -6.5612471103668213e-001
221 |
222 | <_>
223 | 9
224 | -1.1029583215713501e+000
225 |
226 | <_>
227 |
228 | 0 -1 27 -1.1257569491863251e-001
229 |
230 | 3.3181819319725037e-001 -5.3901344537734985e-001
231 | <_>
232 |
233 | 0 -1 142 3.8014666642993689e-003
234 |
235 | -3.6430206894874573e-001 4.5984184741973877e-001
236 | <_>
237 |
238 | 0 -1 57 9.8789634648710489e-004
239 |
240 | -2.6661416888237000e-001 5.6971323490142822e-001
241 | <_>
242 |
243 | 0 -1 55 2.1719809621572495e-002
244 |
245 | 1.8432702124118805e-001 -8.2999354600906372e-001
246 | <_>
247 |
248 | 0 -1 111 5.1051773130893707e-002
249 |
250 | 1.4391148090362549e-001 -9.4541704654693604e-001
251 | <_>
252 |
253 | 0 -1 164 1.8956036074087024e-003
254 |
255 | -6.0830104351043701e-001 2.6091885566711426e-001
256 | <_>
257 |
258 | 0 -1 81 -5.8700828813016415e-003
259 |
260 | 6.9104760885238647e-001 -2.6916843652725220e-001
261 | <_>
262 |
263 | 0 -1 116 -1.1522199492901564e-003
264 |
265 | -6.9503885507583618e-001 2.4749211966991425e-001
266 | <_>
267 |
268 | 0 -1 90 -5.1933946087956429e-003
269 |
270 | 5.8551025390625000e-001 -3.0389472842216492e-001
271 |
272 | <_>
273 | 9
274 | -9.0274518728256226e-001
275 |
276 | <_>
277 |
278 | 0 -1 205 -1.4383997768163681e-002
279 |
280 | 4.5400592684745789e-001 -4.9917897582054138e-001
281 | <_>
282 |
283 | 0 -1 114 -3.3369414508342743e-002
284 |
285 | -9.3247985839843750e-001 1.4586758613586426e-001
286 | <_>
287 |
288 | 0 -1 128 5.2380945999175310e-004
289 |
290 | -2.8349643945693970e-001 6.4983856678009033e-001
291 | <_>
292 |
293 | 0 -1 143 6.1231426661834121e-004
294 |
295 | -1.8502233922481537e-001 6.5052211284637451e-001
296 | <_>
297 |
298 | 0 -1 49 1.7017847858369350e-003
299 |
300 | 2.2008989751338959e-001 -7.2277534008026123e-001
301 | <_>
302 |
303 | 0 -1 133 2.6139442343264818e-003
304 |
305 | 1.8238025903701782e-001 -7.6262325048446655e-001
306 | <_>
307 |
308 | 0 -1 43 -2.0020073279738426e-003
309 |
310 | 5.6799399852752686e-001 -2.8219676017761230e-001
311 | <_>
312 |
313 | 0 -1 119 1.9273828947916627e-003
314 |
315 | -2.0913636684417725e-001 7.9203850030899048e-001
316 | <_>
317 |
318 | 0 -1 134 -9.4476283993571997e-004
319 |
320 | -8.2361942529678345e-001 2.4256958067417145e-001
321 |
322 | <_>
323 | 10
324 | -1.4518526792526245e+000
325 |
326 | <_>
327 |
328 | 0 -1 162 1.6756314784288406e-002
329 |
330 | -6.9359332323074341e-001 5.1373954862356186e-002
331 | <_>
332 |
333 | 0 -1 16 2.4082964286208153e-002
334 |
335 | -3.3989402651786804e-001 4.5332714915275574e-001
336 | <_>
337 |
338 | 0 -1 186 1.2284796684980392e-003
339 |
340 | -2.2297365963459015e-001 6.1439812183380127e-001
341 | <_>
342 |
343 | 0 -1 59 -1.4379122294485569e-003
344 |
345 | -6.9444245100021362e-001 2.0446482300758362e-001
346 | <_>
347 |
348 | 0 -1 185 -1.8713285680860281e-003
349 |
350 | 6.7942184209823608e-001 -2.7580419182777405e-001
351 | <_>
352 |
353 | 0 -1 190 -4.7389674000442028e-003
354 |
355 | -7.0437240600585938e-001 2.6915156841278076e-001
356 | <_>
357 |
358 | 0 -1 156 7.4071279959753156e-004
359 |
360 | -2.9220902919769287e-001 5.3538239002227783e-001
361 | <_>
362 |
363 | 0 -1 11 -2.2739455103874207e-001
364 |
365 | 6.6916191577911377e-001 -2.1987228095531464e-001
366 | <_>
367 |
368 | 0 -1 155 -1.0255509987473488e-003
369 |
370 | 6.3346290588378906e-001 -2.2717863321304321e-001
371 | <_>
372 |
373 | 0 -1 167 2.4775355122983456e-003
374 |
375 | -5.4297816753387451e-001 3.1877547502517700e-001
376 |
377 | <_>
378 | 11
379 | -1.3153649568557739e+000
380 |
381 | <_>
382 |
383 | 0 -1 6 1.9131936132907867e-002
384 |
385 | -6.0168600082397461e-001 1.9141913950443268e-001
386 | <_>
387 |
388 | 0 -1 42 -4.5855185016989708e-003
389 |
390 | 2.1901632845401764e-001 -5.7136750221252441e-001
391 | <_>
392 |
393 | 0 -1 53 -1.9026801455765963e-003
394 |
395 | -8.0075079202651978e-001 1.6502076387405396e-001
396 | <_>
397 |
398 | 0 -1 19 -3.2767035067081451e-002
399 |
400 | 5.1496404409408569e-001 -2.5474679470062256e-001
401 | <_>
402 |
403 | 0 -1 129 6.3941581174731255e-004
404 |
405 | -1.9851709902286530e-001 6.7218667268753052e-001
406 | <_>
407 |
408 | 0 -1 201 1.5573646873235703e-002
409 |
410 | -1.7564551532268524e-001 7.0536541938781738e-001
411 | <_>
412 |
413 | 0 -1 200 9.5508026424795389e-004
414 |
415 | -1.9691802561283112e-001 6.1125624179840088e-001
416 | <_>
417 |
418 | 0 -1 67 9.0427603572607040e-003
419 |
420 | 1.6518253087997437e-001 -8.7012130022048950e-001
421 | <_>
422 |
423 | 0 -1 77 8.1576988101005554e-002
424 |
425 | 1.4075902104377747e-001 -8.4871828556060791e-001
426 | <_>
427 |
428 | 0 -1 166 -5.1994959358125925e-004
429 |
430 | 2.1803210675716400e-001 -5.4628211259841919e-001
431 | <_>
432 |
433 | 0 -1 70 -2.3009868338704109e-002
434 |
435 | -7.9586231708526611e-001 1.5989699959754944e-001
436 |
437 | <_>
438 | 13
439 | -1.4625015258789063e+000
440 |
441 | <_>
442 |
443 | 0 -1 1 2.6759501546621323e-002
444 |
445 | -6.0482984781265259e-001 1.4906832575798035e-001
446 | <_>
447 |
448 | 0 -1 165 3.0343931168317795e-002
449 |
450 | -4.7357541322708130e-001 2.6279065012931824e-001
451 | <_>
452 |
453 | 0 -1 161 1.2678599450737238e-003
454 |
455 | -1.9493983685970306e-001 6.9734728336334229e-001
456 | <_>
457 |
458 | 0 -1 30 1.8607920501381159e-003
459 |
460 | 1.5611934661865234e-001 -9.0542370080947876e-001
461 | <_>
462 |
463 | 0 -1 157 -1.3872641138732433e-003
464 |
465 | 5.3263407945632935e-001 -3.0192303657531738e-001
466 | <_>
467 |
468 | 0 -1 180 -6.9969398900866508e-003
469 |
470 | -9.4549953937530518e-001 1.5575224161148071e-001
471 | <_>
472 |
473 | 0 -1 158 1.1245720088481903e-003
474 |
475 | -2.6688691973686218e-001 5.5608308315277100e-001
476 | <_>
477 |
478 | 0 -1 160 -2.8279949910938740e-003
479 |
480 | -9.1861122846603394e-001 1.3309663534164429e-001
481 | <_>
482 |
483 | 0 -1 58 7.1019242750480771e-004
484 |
485 | -3.0977895855903625e-001 4.3846300244331360e-001
486 | <_>
487 |
488 | 0 -1 8 -4.1933014988899231e-002
489 |
490 | -8.9102542400360107e-001 1.5866196155548096e-001
491 | <_>
492 |
493 | 0 -1 87 1.6568358987569809e-002
494 |
495 | 1.2731756269931793e-001 -8.5553413629531860e-001
496 | <_>
497 |
498 | 0 -1 64 2.0309074316173792e-003
499 |
500 | -2.3260365426540375e-001 6.7330485582351685e-001
501 | <_>
502 |
503 | 0 -1 159 -1.7069760942831635e-003
504 |
505 | -7.1925789117813110e-001 1.9108834862709045e-001
506 |
507 | <_>
508 | 14
509 | -1.4959813356399536e+000
510 |
511 | <_>
512 |
513 | 0 -1 4 1.4695923775434494e-002
514 |
515 | -6.2167906761169434e-001 2.1172638237476349e-001
516 | <_>
517 |
518 | 0 -1 50 -1.6501215286552906e-003
519 |
520 | 1.9353884458541870e-001 -5.7780367136001587e-001
521 | <_>
522 |
523 | 0 -1 123 7.0121872704476118e-004
524 |
525 | -2.2979106009006500e-001 5.3033334016799927e-001
526 | <_>
527 |
528 | 0 -1 52 9.4158272258937359e-004
529 |
530 | 1.6849038004875183e-001 -7.4897718429565430e-001
531 | <_>
532 |
533 | 0 -1 124 -2.0684124901890755e-003
534 |
535 | 6.7936712503433228e-001 -1.9317412376403809e-001
536 | <_>
537 |
538 | 0 -1 23 -1.8305826233699918e-004
539 |
540 | -7.0275229215621948e-001 1.7971208691596985e-001
541 | <_>
542 |
543 | 0 -1 198 5.5587477982044220e-004
544 |
545 | -2.4448128044605255e-001 5.0703984498977661e-001
546 | <_>
547 |
548 | 0 -1 152 4.3448276119306684e-004
549 |
550 | 1.3497908413410187e-001 -8.5621362924575806e-001
551 | <_>
552 |
553 | 0 -1 197 -1.2359691318124533e-003
554 |
555 | 6.1710417270660400e-001 -2.2301279008388519e-001
556 | <_>
557 |
558 | 0 -1 153 -6.9627340417355299e-004
559 |
560 | -6.4706987142562866e-001 2.3951497673988342e-001
561 | <_>
562 |
563 | 0 -1 175 1.0683680884540081e-003
564 |
565 | -2.8343605995178223e-001 4.9318629503250122e-001
566 | <_>
567 |
568 | 0 -1 168 1.7104238213505596e-004
569 |
570 | -2.7171039581298828e-001 4.2520308494567871e-001
571 | <_>
572 |
573 | 0 -1 144 8.2368971779942513e-003
574 |
575 | 1.6359315812587738e-001 -7.3864609003067017e-001
576 | <_>
577 |
578 | 0 -1 131 -5.9884190559387207e-003
579 |
580 | 3.8030940294265747e-001 -3.0763563513755798e-001
581 |
582 | <_>
583 | 9
584 | -1.1183819770812988e+000
585 |
586 | <_>
587 |
588 | 0 -1 187 -1.4863962307572365e-002
589 |
590 | 1.1989101022481918e-001 -6.6138857603073120e-001
591 | <_>
592 |
593 | 0 -1 117 2.4736612103879452e-003
594 |
595 | -5.2778661251068115e-001 2.3012125492095947e-001
596 | <_>
597 |
598 | 0 -1 71 -4.8899287357926369e-003
599 |
600 | 6.0186779499053955e-001 -2.0681641995906830e-001
601 | <_>
602 |
603 | 0 -1 174 1.5796069055795670e-002
604 |
605 | 1.4610521495342255e-001 -8.2099527120590210e-001
606 | <_>
607 |
608 | 0 -1 104 5.9720675926655531e-004
609 |
610 | -2.3587301373481750e-001 4.8323699831962585e-001
611 | <_>
612 |
613 | 0 -1 103 -1.9448818638920784e-003
614 |
615 | 6.4417767524719238e-001 -2.0953170955181122e-001
616 | <_>
617 |
618 | 0 -1 154 1.9433414854574949e-004
619 |
620 | 2.0600238442420959e-001 -7.2418999671936035e-001
621 | <_>
622 |
623 | 0 -1 163 -1.5097535215318203e-002
624 |
625 | -8.7151485681533813e-001 1.2594890594482422e-001
626 | <_>
627 |
628 | 0 -1 82 -3.9843879640102386e-003
629 |
630 | 4.3801131844520569e-001 -2.9676589369773865e-001
631 |
632 | <_>
633 | 12
634 | -1.5434337854385376e+000
635 |
636 | <_>
637 |
638 | 0 -1 105 1.1273270938545465e-003
639 |
640 | -4.7976878285408020e-001 3.6627906560897827e-001
641 | <_>
642 |
643 | 0 -1 95 9.7806821577250957e-004
644 |
645 | -2.7689707279205322e-001 5.1295894384384155e-001
646 | <_>
647 |
648 | 0 -1 15 1.6528377309441566e-002
649 |
650 | -4.5259797573089600e-001 2.4290211498737335e-001
651 | <_>
652 |
653 | 0 -1 137 1.1040373938158154e-003
654 |
655 | -3.2714816927909851e-001 3.4566244482994080e-001
656 | <_>
657 |
658 | 0 -1 109 -1.7780361231416464e-003
659 |
660 | -6.9511681795120239e-001 1.8829824030399323e-001
661 | <_>
662 |
663 | 0 -1 92 4.6280334936454892e-004
664 |
665 | -2.3864887654781342e-001 5.3136289119720459e-001
666 | <_>
667 |
668 | 0 -1 100 -1.4975425438024104e-004
669 |
670 | -6.6509884595870972e-001 2.1483559906482697e-001
671 | <_>
672 |
673 | 0 -1 83 -1.4625370968133211e-003
674 |
675 | 2.6556470990180969e-001 -4.9002227187156677e-001
676 | <_>
677 |
678 | 0 -1 14 -2.6019819779321551e-004
679 |
680 | -7.0160359144210815e-001 1.6359129548072815e-001
681 | <_>
682 |
683 | 0 -1 14 2.2371641534846276e-004
684 |
685 | 1.2919521331787109e-001 -6.9767206907272339e-001
686 | <_>
687 |
688 | 0 -1 194 -1.0447315871715546e-002
689 |
690 | 2.1837629377841949e-001 -4.6482038497924805e-001
691 | <_>
692 |
693 | 0 -1 20 -9.2897024005651474e-003
694 |
695 | 6.4918082952499390e-001 -2.0495061576366425e-001
696 |
697 | <_>
698 | 12
699 | -1.4440233707427979e+000
700 |
701 | <_>
702 |
703 | 0 -1 9 8.5356216877698898e-003
704 |
705 | -5.3151458501815796e-001 2.2357723116874695e-001
706 | <_>
707 |
708 | 0 -1 182 1.5294685726985335e-003
709 |
710 | -6.0895460844039917e-001 1.7429886758327484e-001
711 | <_>
712 |
713 | 0 -1 40 1.8610086990520358e-003
714 |
715 | -2.5480428338050842e-001 4.2150071263313293e-001
716 | <_>
717 |
718 | 0 -1 176 1.5735558699816465e-003
719 |
720 | -1.6832062602043152e-001 4.8567819595336914e-001
721 | <_>
722 |
723 | 0 -1 179 -6.7992787808179855e-004
724 |
725 | 3.9894598722457886e-001 -3.0744269490242004e-001
726 | <_>
727 |
728 | 0 -1 151 4.9857296049594879e-002
729 |
730 | -1.5370152890682220e-001 6.7523348331451416e-001
731 | <_>
732 |
733 | 0 -1 139 -2.8339058160781860e-002
734 |
735 | 5.0540882349014282e-001 -2.9473617672920227e-001
736 | <_>
737 |
738 | 0 -1 72 -7.7956825494766235e-002
739 |
740 | 4.0387043356895447e-001 -3.0287107825279236e-001
741 | <_>
742 |
743 | 0 -1 89 -3.6115488037467003e-003
744 |
745 | 6.3856112957000732e-001 -1.6917882859706879e-001
746 | <_>
747 |
748 | 0 -1 207 3.3940275898203254e-004
749 |
750 | 1.3713537156581879e-001 -7.8120291233062744e-001
751 | <_>
752 |
753 | 0 -1 39 4.0043061599135399e-003
754 |
755 | 1.5233094990253448e-001 -6.3939732313156128e-001
756 | <_>
757 |
758 | 0 -1 65 -4.4601649278774858e-004
759 |
760 | 2.1333815157413483e-001 -4.7728902101516724e-001
761 |
762 | <_>
763 | 13
764 | -1.2532578706741333e+000
765 |
766 | <_>
767 |
768 | 0 -1 204 -2.0341124385595322e-002
769 |
770 | 2.4170616269111633e-001 -4.9161517620086670e-001
771 | <_>
772 |
773 | 0 -1 169 8.9040049351751804e-004
774 |
775 | -2.8570893406867981e-001 4.2666998505592346e-001
776 | <_>
777 |
778 | 0 -1 60 -3.3259526826441288e-003
779 |
780 | 4.2626520991325378e-001 -2.3811897635459900e-001
781 | <_>
782 |
783 | 0 -1 38 -3.1714607030153275e-002
784 |
785 | -8.5494768619537354e-001 1.1712870001792908e-001
786 | <_>
787 |
788 | 0 -1 31 -1.1553820222616196e-002
789 |
790 | 2.2675493359565735e-001 -4.9640509486198425e-001
791 | <_>
792 |
793 | 0 -1 80 -6.7727260291576385e-002
794 |
795 | -8.6705064773559570e-001 9.8765812814235687e-002
796 | <_>
797 |
798 | 0 -1 63 -3.1611192971467972e-003
799 |
800 | 3.9449846744537354e-001 -2.8210711479187012e-001
801 | <_>
802 |
803 | 0 -1 149 4.3221906526014209e-004
804 |
805 | 1.1805476248264313e-001 -9.0178310871124268e-001
806 | <_>
807 |
808 | 0 -1 188 -2.2296360111795366e-004
809 |
810 | 1.7324598133563995e-001 -5.2877873182296753e-001
811 | <_>
812 |
813 | 0 -1 120 -2.1440195851027966e-003
814 |
815 | 5.5513423681259155e-001 -1.9791823625564575e-001
816 | <_>
817 |
818 | 0 -1 113 -4.5122690498828888e-003
819 |
820 | 5.5083745718002319e-001 -1.8810540437698364e-001
821 | <_>
822 |
823 | 0 -1 130 -3.5149464383721352e-003
824 |
825 | 5.5467557907104492e-001 -2.2856147587299347e-001
826 | <_>
827 |
828 | 0 -1 121 -4.4786706566810608e-003
829 |
830 | -7.9106998443603516e-001 1.7836479842662811e-001
831 |
832 | <_>
833 | 15
834 | -1.1898330450057983e+000
835 |
836 | <_>
837 |
838 | 0 -1 0 1.5206767246127129e-002
839 |
840 | -4.9173194169998169e-001 2.7093595266342163e-001
841 | <_>
842 |
843 | 0 -1 125 6.9564773002639413e-004
844 |
845 | -2.3066598176956177e-001 5.4028344154357910e-001
846 | <_>
847 |
848 | 0 -1 125 -8.3668017759919167e-004
849 |
850 | 4.4658055901527405e-001 -2.7778497338294983e-001
851 | <_>
852 |
853 | 0 -1 91 -3.8321319967508316e-002
854 |
855 | -7.9069298505783081e-001 1.8700349330902100e-001
856 | <_>
857 |
858 | 0 -1 207 -2.1063965687062591e-004
859 |
860 | -6.3163763284683228e-001 1.8656146526336670e-001
861 | <_>
862 |
863 | 0 -1 61 3.6907330155372620e-002
864 |
865 | 9.9319733679294586e-002 -7.6762360334396362e-001
866 | <_>
867 |
868 | 0 -1 85 8.1071127206087112e-003
869 |
870 | -2.8561261296272278e-001 3.4748569130897522e-001
871 | <_>
872 |
873 | 0 -1 189 6.2815943965688348e-004
874 |
875 | 1.6656193137168884e-001 -5.4635977745056152e-001
876 | <_>
877 |
878 | 0 -1 86 2.8582263621501625e-004
879 |
880 | -2.4100163578987122e-001 4.5410770177841187e-001
881 | <_>
882 |
883 | 0 -1 173 -1.9862279295921326e-002
884 |
885 | -9.4317340850830078e-001 1.2513674795627594e-001
886 | <_>
887 |
888 | 0 -1 96 1.1506280861794949e-003
889 |
890 | -2.4514634907245636e-001 4.6452957391738892e-001
891 | <_>
892 |
893 | 0 -1 29 2.3451185552403331e-004
894 |
895 | 1.2489952147006989e-001 -8.0278074741363525e-001
896 | <_>
897 |
898 | 0 -1 101 6.7837134702131152e-004
899 |
900 | -2.5017899274826050e-001 4.3841627240180969e-001
901 | <_>
902 |
903 | 0 -1 17 3.1583159579895437e-004
904 |
905 | 1.5951988101005554e-001 -7.4524724483489990e-001
906 | <_>
907 |
908 | 0 -1 110 7.2623658925294876e-003
909 |
910 | 1.2511830031871796e-001 -6.5659755468368530e-001
911 |
912 | <_>
913 | 15
914 | -1.2416906356811523e+000
915 |
916 | <_>
917 |
918 | 0 -1 2 7.5144092552363873e-003
919 |
920 | -5.9518074989318848e-001 5.3793102502822876e-002
921 | <_>
922 |
923 | 0 -1 98 -6.4494344405829906e-004
924 |
925 | 2.0429474115371704e-001 -4.3661779165267944e-001
926 | <_>
927 |
928 | 0 -1 196 3.3831471228040755e-004
929 |
930 | -2.1566553413867950e-001 4.7118204832077026e-001
931 | <_>
932 |
933 | 0 -1 73 2.8320802375674248e-003
934 |
935 | 1.3322307169437408e-001 -8.3729231357574463e-001
936 | <_>
937 |
938 | 0 -1 199 1.6218879027292132e-003
939 |
940 | -2.0889574289321899e-001 4.7114694118499756e-001
941 | <_>
942 |
943 | 0 -1 10 2.7122153551317751e-004
944 |
945 | 1.1475630849599838e-001 -7.8029519319534302e-001
946 | <_>
947 |
948 | 0 -1 170 8.8358242064714432e-003
949 |
950 | 1.2460929155349731e-001 -7.6791721582412720e-001
951 | <_>
952 |
953 | 0 -1 106 9.7634072881191969e-004
954 |
955 | -2.0806105434894562e-001 5.1318311691284180e-001
956 | <_>
957 |
958 | 0 -1 107 -2.1239042282104492e-002
959 |
960 | -8.7171542644500732e-001 1.2721680104732513e-001
961 | <_>
962 |
963 | 0 -1 97 7.1797124110162258e-004
964 |
965 | -3.0763280391693115e-001 3.7504923343658447e-001
966 | <_>
967 |
968 | 0 -1 32 2.7504155412316322e-002
969 |
970 | 1.5651945769786835e-001 -7.9516488313674927e-001
971 | <_>
972 |
973 | 0 -1 178 1.0624636197462678e-003
974 |
975 | 1.3473348319530487e-001 -6.9174814224243164e-001
976 | <_>
977 |
978 | 0 -1 33 -8.1248432397842407e-002
979 |
980 | -8.5117286443710327e-001 1.0601779073476791e-001
981 | <_>
982 |
983 | 0 -1 140 -2.2936165332794189e-002
984 |
985 | 3.9202499389648438e-001 -2.9867398738861084e-001
986 | <_>
987 |
988 | 0 -1 146 -1.3326616026461124e-003
989 |
990 | 4.7240665555000305e-001 -2.6287403702735901e-001
991 |
992 | <_>
993 | 13
994 | -1.3383979797363281e+000
995 |
996 | <_>
997 |
998 | 0 -1 3 3.2254494726657867e-002
999 |
1000 | -6.5151512622833252e-001 7.9947575926780701e-002
1001 | <_>
1002 |
1003 | 0 -1 172 -1.1810796568170190e-003
1004 |
1005 | 2.5173431634902954e-001 -4.5536977052688599e-001
1006 | <_>
1007 |
1008 | 0 -1 88 8.0361258005723357e-004
1009 |
1010 | -2.1178695559501648e-001 4.9318632483482361e-001
1011 | <_>
1012 |
1013 | 0 -1 93 6.6201295703649521e-004
1014 |
1015 | -1.9441033899784088e-001 4.6225026249885559e-001
1016 | <_>
1017 |
1018 | 0 -1 84 3.4565184614621103e-004
1019 |
1020 | -2.1175089478492737e-001 4.6985754370689392e-001
1021 | <_>
1022 |
1023 | 0 -1 132 -5.6433549616485834e-004
1024 |
1025 | -7.9713624715805054e-001 1.8714086711406708e-001
1026 | <_>
1027 |
1028 | 0 -1 56 5.8492692187428474e-004
1029 |
1030 | -3.9330720901489258e-001 2.4242231249809265e-001
1031 | <_>
1032 |
1033 | 0 -1 13 2.5043603032827377e-002
1034 |
1035 | 1.3490234315395355e-001 -7.5923883914947510e-001
1036 | <_>
1037 |
1038 | 0 -1 37 -1.8510785885155201e-003
1039 |
1040 | 4.1279399394989014e-001 -2.7271771430969238e-001
1041 | <_>
1042 |
1043 | 0 -1 68 -2.5741360150277615e-004
1044 |
1045 | -6.3662034273147583e-001 1.8135882914066315e-001
1046 | <_>
1047 |
1048 | 0 -1 184 -1.5121832489967346e-002
1049 |
1050 | 2.5249326229095459e-001 -3.8438034057617188e-001
1051 | <_>
1052 |
1053 | 0 -1 203 -1.5006031841039658e-002
1054 |
1055 | -8.4878319501876831e-001 1.1718367785215378e-001
1056 | <_>
1057 |
1058 | 0 -1 74 4.9880752339959145e-004
1059 |
1060 | -2.6755046844482422e-001 4.5769825577735901e-001
1061 |
1062 | <_>
1063 | 12
1064 | -1.2097512483596802e+000
1065 |
1066 | <_>
1067 |
1068 | 0 -1 195 -1.1614991351962090e-002
1069 |
1070 | 1.4465409517288208e-001 -5.9521216154098511e-001
1071 | <_>
1072 |
1073 | 0 -1 75 3.9767110138200223e-004
1074 |
1075 | -4.2697989940643311e-001 2.4382311105728149e-001
1076 | <_>
1077 |
1078 | 0 -1 47 -4.6969857066869736e-002
1079 |
1080 | -9.3969690799713135e-001 1.2196484953165054e-001
1081 | <_>
1082 |
1083 | 0 -1 136 5.5550434626638889e-004
1084 |
1085 | -1.8246935307979584e-001 6.5156191587448120e-001
1086 | <_>
1087 |
1088 | 0 -1 99 2.9468833236023784e-004
1089 |
1090 | 1.5099152922630310e-001 -7.8840750455856323e-001
1091 | <_>
1092 |
1093 | 0 -1 44 1.2439775280654430e-002
1094 |
1095 | 1.4981375634670258e-001 -7.5917595624923706e-001
1096 | <_>
1097 |
1098 | 0 -1 147 6.6337559837847948e-004
1099 |
1100 | -2.5185841321945190e-001 5.9387433528900146e-001
1101 | <_>
1102 |
1103 | 0 -1 148 -6.8454549182206392e-004
1104 |
1105 | 5.1199448108673096e-001 -2.5247576832771301e-001
1106 | <_>
1107 |
1108 | 0 -1 141 1.4808592386543751e-003
1109 |
1110 | 2.2439701855182648e-001 -5.8184891939163208e-001
1111 | <_>
1112 |
1113 | 0 -1 12 6.0307271778583527e-003
1114 |
1115 | -4.3553912639617920e-001 2.8183382749557495e-001
1116 | <_>
1117 |
1118 | 0 -1 78 -1.9170897081494331e-002
1119 |
1120 | -8.5707378387451172e-001 1.4850790798664093e-001
1121 | <_>
1122 |
1123 | 0 -1 122 3.0278289341367781e-004
1124 |
1125 | -3.1547480821609497e-001 4.1798374056816101e-001
1126 |
1127 | <_>
1128 | 10
1129 | -1.2253109216690063e+000
1130 |
1131 | <_>
1132 |
1133 | 0 -1 181 4.6847470104694366e-002
1134 |
1135 | -4.9239391088485718e-001 5.2287584543228149e-001
1136 | <_>
1137 |
1138 | 0 -1 118 2.2181579843163490e-003
1139 |
1140 | -4.2569425702095032e-001 3.6892616748809814e-001
1141 | <_>
1142 |
1143 | 0 -1 145 6.1082182219251990e-004
1144 |
1145 | 1.7654621601104736e-001 -8.2656937837600708e-001
1146 | <_>
1147 |
1148 | 0 -1 127 1.7401995137333870e-002
1149 |
1150 | 2.7770876884460449e-001 -5.6393522024154663e-001
1151 | <_>
1152 |
1153 | 0 -1 54 5.2314018830657005e-004
1154 |
1155 | -3.6257097125053406e-001 4.6126455068588257e-001
1156 | <_>
1157 |
1158 | 0 -1 206 2.1581796463578939e-003
1159 |
1160 | 1.9110183417797089e-001 -6.8012320995330811e-001
1161 | <_>
1162 |
1163 | 0 -1 192 -1.3209994649514556e-003
1164 |
1165 | 6.7618584632873535e-001 -2.6087108254432678e-001
1166 | <_>
1167 |
1168 | 0 -1 126 -1.2237254530191422e-002
1169 |
1170 | -5.7184767723083496e-001 3.0778104066848755e-001
1171 | <_>
1172 |
1173 | 0 -1 36 8.7829465046525002e-003
1174 |
1175 | 1.6890920698642731e-001 -7.8835797309875488e-001
1176 | <_>
1177 |
1178 | 0 -1 183 7.5588272884488106e-003
1179 |
1180 | 1.5143942832946777e-001 -8.2572847604751587e-001
1181 |
1182 | <_>
1183 |
1184 | <_>
1185 | 0 0 10 10 -1.
1186 | <_>
1187 | 0 0 5 5 2.
1188 | <_>
1189 | 5 5 5 5 2.
1190 | 0
1191 | <_>
1192 |
1193 | <_>
1194 | 0 0 12 16 -1.
1195 | <_>
1196 | 6 0 6 16 2.
1197 | 0
1198 | <_>
1199 |
1200 | <_>
1201 | 0 3 10 6 -1.
1202 | <_>
1203 | 5 3 5 6 2.
1204 | 0
1205 | <_>
1206 |
1207 | <_>
1208 | 0 3 21 16 -1.
1209 | <_>
1210 | 7 3 7 16 3.
1211 | 0
1212 | <_>
1213 |
1214 | <_>
1215 | 0 4 16 9 -1.
1216 | <_>
1217 | 4 4 8 9 2.
1218 | 0
1219 | <_>
1220 |
1221 | <_>
1222 | 0 4 10 12 -1.
1223 | <_>
1224 | 5 4 5 12 2.
1225 | 0
1226 | <_>
1227 |
1228 | <_>
1229 | 0 7 14 7 -1.
1230 | <_>
1231 | 7 7 7 7 2.
1232 | 0
1233 | <_>
1234 |
1235 | <_>
1236 | 0 9 12 7 -1.
1237 | <_>
1238 | 6 9 6 7 2.
1239 | 0
1240 | <_>
1241 |
1242 | <_>
1243 | 0 9 60 3 -1.
1244 | <_>
1245 | 30 9 30 3 2.
1246 | 0
1247 | <_>
1248 |
1249 | <_>
1250 | 0 10 8 3 -1.
1251 | <_>
1252 | 4 10 4 3 2.
1253 | 0
1254 | <_>
1255 |
1256 | <_>
1257 | 0 11 1 2 -1.
1258 | <_>
1259 | 0 12 1 1 2.
1260 | 0
1261 | <_>
1262 |
1263 | <_>
1264 | 1 0 51 12 -1.
1265 | <_>
1266 | 1 4 51 4 3.
1267 | 0
1268 | <_>
1269 |
1270 | <_>
1271 | 1 3 15 7 -1.
1272 | <_>
1273 | 6 3 5 7 3.
1274 | 0
1275 | <_>
1276 |
1277 | <_>
1278 | 1 7 30 6 -1.
1279 | <_>
1280 | 1 7 15 3 2.
1281 | <_>
1282 | 16 10 15 3 2.
1283 | 0
1284 | <_>
1285 |
1286 | <_>
1287 | 1 12 1 2 -1.
1288 | <_>
1289 | 1 13 1 1 2.
1290 | 0
1291 | <_>
1292 |
1293 | <_>
1294 | 2 2 18 16 -1.
1295 | <_>
1296 | 2 6 18 8 2.
1297 | 0
1298 | <_>
1299 |
1300 | <_>
1301 | 2 3 29 4 -1.
1302 | <_>
1303 | 2 5 29 2 2.
1304 | 0
1305 | <_>
1306 |
1307 | <_>
1308 | 2 9 1 2 -1.
1309 | <_>
1310 | 2 10 1 1 2.
1311 | 0
1312 | <_>
1313 |
1314 | <_>
1315 | 2 14 40 6 -1.
1316 | <_>
1317 | 2 17 40 3 2.
1318 | 0
1319 | <_>
1320 |
1321 | <_>
1322 | 3 0 22 6 -1.
1323 | <_>
1324 | 3 2 22 2 3.
1325 | 0
1326 | <_>
1327 |
1328 | <_>
1329 | 3 2 38 2 -1.
1330 | <_>
1331 | 3 2 19 1 2.
1332 | <_>
1333 | 22 3 19 1 2.
1334 | 0
1335 | <_>
1336 |
1337 | <_>
1338 | 3 4 51 16 -1.
1339 | <_>
1340 | 3 8 51 8 2.
1341 | 0
1342 | <_>
1343 |
1344 | <_>
1345 | 3 7 3 8 -1.
1346 | <_>
1347 | 4 7 1 8 3.
1348 | 0
1349 | <_>
1350 |
1351 | <_>
1352 | 3 9 1 3 -1.
1353 | <_>
1354 | 3 10 1 1 3.
1355 | 0
1356 | <_>
1357 |
1358 | <_>
1359 | 4 8 3 5 -1.
1360 | <_>
1361 | 5 8 1 5 3.
1362 | 0
1363 | <_>
1364 |
1365 | <_>
1366 | 4 8 4 9 -1.
1367 | <_>
1368 | 5 8 2 9 2.
1369 | 0
1370 | <_>
1371 |
1372 | <_>
1373 | 4 11 36 9 -1.
1374 | <_>
1375 | 16 11 12 9 3.
1376 | 0
1377 | <_>
1378 |
1379 | <_>
1380 | 4 14 49 6 -1.
1381 | <_>
1382 | 4 17 49 3 2.
1383 | 0
1384 | <_>
1385 |
1386 | <_>
1387 | 5 0 17 6 -1.
1388 | <_>
1389 | 5 2 17 2 3.
1390 | 0
1391 | <_>
1392 |
1393 | <_>
1394 | 5 1 3 1 -1.
1395 | <_>
1396 | 6 1 1 1 3.
1397 | 0
1398 | <_>
1399 |
1400 | <_>
1401 | 5 1 8 2 -1.
1402 | <_>
1403 | 7 1 4 2 2.
1404 | 0
1405 | <_>
1406 |
1407 | <_>
1408 | 5 2 36 9 -1.
1409 | <_>
1410 | 17 2 12 9 3.
1411 | 0
1412 | <_>
1413 |
1414 | <_>
1415 | 5 3 33 17 -1.
1416 | <_>
1417 | 16 3 11 17 3.
1418 | 0
1419 | <_>
1420 |
1421 | <_>
1422 | 6 0 30 19 -1.
1423 | <_>
1424 | 16 0 10 19 3.
1425 | 0
1426 | <_>
1427 |
1428 | <_>
1429 | 6 3 29 4 -1.
1430 | <_>
1431 | 6 5 29 2 2.
1432 | 0
1433 | <_>
1434 |
1435 | <_>
1436 | 6 4 16 16 -1.
1437 | <_>
1438 | 14 4 8 16 2.
1439 | 0
1440 | <_>
1441 |
1442 | <_>
1443 | 6 9 54 1 -1.
1444 | <_>
1445 | 33 9 27 1 2.
1446 | 0
1447 | <_>
1448 |
1449 | <_>
1450 | 7 0 4 18 -1.
1451 | <_>
1452 | 8 0 2 18 2.
1453 | 0
1454 | <_>
1455 |
1456 | <_>
1457 | 7 3 12 15 -1.
1458 | <_>
1459 | 13 3 6 15 2.
1460 | 0
1461 | <_>
1462 |
1463 | <_>
1464 | 7 4 20 5 -1.
1465 | <_>
1466 | 12 4 10 5 2.
1467 | 0
1468 | <_>
1469 |
1470 | <_>
1471 | 7 4 6 3 -1.
1472 | <_>
1473 | 7 5 6 1 3.
1474 | 0
1475 | <_>
1476 |
1477 | <_>
1478 | 7 4 36 6 -1.
1479 | <_>
1480 | 19 4 12 6 3.
1481 | 0
1482 | <_>
1483 |
1484 | <_>
1485 | 7 5 28 4 -1.
1486 | <_>
1487 | 14 5 14 4 2.
1488 | 0
1489 | <_>
1490 |
1491 | <_>
1492 | 7 7 4 11 -1.
1493 | <_>
1494 | 8 7 2 11 2.
1495 | 0
1496 | <_>
1497 |
1498 | <_>
1499 | 7 9 12 7 -1.
1500 | <_>
1501 | 13 9 6 7 2.
1502 | 0
1503 | <_>
1504 |
1505 | <_>
1506 | 8 1 21 4 -1.
1507 | <_>
1508 | 8 3 21 2 2.
1509 | 0
1510 | <_>
1511 |
1512 | <_>
1513 | 8 4 28 6 -1.
1514 | <_>
1515 | 15 4 14 6 2.
1516 | 0
1517 | <_>
1518 |
1519 | <_>
1520 | 8 8 38 6 -1.
1521 | <_>
1522 | 8 10 38 2 3.
1523 | 0
1524 | <_>
1525 |
1526 | <_>
1527 | 8 14 25 4 -1.
1528 | <_>
1529 | 8 15 25 2 2.
1530 | 0
1531 | <_>
1532 |
1533 | <_>
1534 | 9 2 12 4 -1.
1535 | <_>
1536 | 12 2 6 4 2.
1537 | 0
1538 | <_>
1539 |
1540 | <_>
1541 | 9 5 24 3 -1.
1542 | <_>
1543 | 15 5 12 3 2.
1544 | 0
1545 | <_>
1546 |
1547 | <_>
1548 | 9 8 40 12 -1.
1549 | <_>
1550 | 9 12 40 4 3.
1551 | 0
1552 | <_>
1553 |
1554 | <_>
1555 | 10 2 8 2 -1.
1556 | <_>
1557 | 12 2 4 2 2.
1558 | 0
1559 | <_>
1560 |
1561 | <_>
1562 | 10 2 9 2 -1.
1563 | <_>
1564 | 13 2 3 2 3.
1565 | 0
1566 | <_>
1567 |
1568 | <_>
1569 | 10 5 3 3 -1.
1570 | <_>
1571 | 11 6 1 1 9.
1572 | 0
1573 | <_>
1574 |
1575 | <_>
1576 | 11 0 32 20 -1.
1577 | <_>
1578 | 19 0 16 20 2.
1579 | 0
1580 | <_>
1581 |
1582 | <_>
1583 | 11 3 1 4 -1.
1584 | <_>
1585 | 11 5 1 2 2.
1586 | 0
1587 | <_>
1588 |
1589 | <_>
1590 | 11 9 4 3 -1.
1591 | <_>
1592 | 12 9 2 3 2.
1593 | 0
1594 | <_>
1595 |
1596 | <_>
1597 | 11 9 3 7 -1.
1598 | <_>
1599 | 12 9 1 7 3.
1600 | 0
1601 | <_>
1602 |
1603 | <_>
1604 | 12 3 9 2 -1.
1605 | <_>
1606 | 15 3 3 2 3.
1607 | 0
1608 | <_>
1609 |
1610 | <_>
1611 | 12 6 6 6 -1.
1612 | <_>
1613 | 14 6 2 6 3.
1614 | 0
1615 | <_>
1616 |
1617 | <_>
1618 | 12 10 42 10 -1.
1619 | <_>
1620 | 26 10 14 10 3.
1621 | 0
1622 | <_>
1623 |
1624 | <_>
1625 | 12 14 11 3 -1.
1626 | <_>
1627 | 12 15 11 1 3.
1628 | 0
1629 | <_>
1630 |
1631 | <_>
1632 | 13 4 6 14 -1.
1633 | <_>
1634 | 15 4 2 14 3.
1635 | 0
1636 | <_>
1637 |
1638 | <_>
1639 | 13 8 3 6 -1.
1640 | <_>
1641 | 14 8 1 6 3.
1642 | 0
1643 | <_>
1644 |
1645 | <_>
1646 | 13 11 32 2 -1.
1647 | <_>
1648 | 21 11 16 2 2.
1649 | 0
1650 | <_>
1651 |
1652 | <_>
1653 | 13 13 25 6 -1.
1654 | <_>
1655 | 13 16 25 3 2.
1656 | 0
1657 | <_>
1658 |
1659 | <_>
1660 | 13 16 21 3 -1.
1661 | <_>
1662 | 20 16 7 3 3.
1663 | 0
1664 | <_>
1665 |
1666 | <_>
1667 | 14 2 3 2 -1.
1668 | <_>
1669 | 15 2 1 2 3.
1670 | 0
1671 | <_>
1672 |
1673 | <_>
1674 | 14 2 24 8 -1.
1675 | <_>
1676 | 20 2 12 8 2.
1677 | 0
1678 | <_>
1679 |
1680 | <_>
1681 | 14 13 36 6 -1.
1682 | <_>
1683 | 23 13 18 6 2.
1684 | 0
1685 | <_>
1686 |
1687 | <_>
1688 | 14 14 8 3 -1.
1689 | <_>
1690 | 14 15 8 1 3.
1691 | 0
1692 | <_>
1693 |
1694 | <_>
1695 | 14 14 45 6 -1.
1696 | <_>
1697 | 14 17 45 3 2.
1698 | 0
1699 | <_>
1700 |
1701 | <_>
1702 | 14 18 9 2 -1.
1703 | <_>
1704 | 17 18 3 2 3.
1705 | 0
1706 | <_>
1707 |
1708 | <_>
1709 | 15 9 4 1 -1.
1710 | <_>
1711 | 16 9 2 1 2.
1712 | 0
1713 | <_>
1714 |
1715 | <_>
1716 | 15 10 19 4 -1.
1717 | <_>
1718 | 15 12 19 2 2.
1719 | 0
1720 | <_>
1721 |
1722 | <_>
1723 | 16 0 28 8 -1.
1724 | <_>
1725 | 16 2 28 4 2.
1726 | 0
1727 | <_>
1728 |
1729 | <_>
1730 | 16 2 36 18 -1.
1731 | <_>
1732 | 28 2 12 18 3.
1733 | 0
1734 | <_>
1735 |
1736 | <_>
1737 | 16 6 24 6 -1.
1738 | <_>
1739 | 22 6 12 6 2.
1740 | 0
1741 | <_>
1742 |
1743 | <_>
1744 | 17 1 24 6 -1.
1745 | <_>
1746 | 17 3 24 2 3.
1747 | 0
1748 | <_>
1749 |
1750 | <_>
1751 | 17 3 15 12 -1.
1752 | <_>
1753 | 22 7 5 4 9.
1754 | 0
1755 | <_>
1756 |
1757 | <_>
1758 | 17 15 11 3 -1.
1759 | <_>
1760 | 17 16 11 1 3.
1761 | 0
1762 | <_>
1763 |
1764 | <_>
1765 | 18 5 6 10 -1.
1766 | <_>
1767 | 20 5 2 10 3.
1768 | 0
1769 | <_>
1770 |
1771 | <_>
1772 | 18 6 18 3 -1.
1773 | <_>
1774 | 24 6 6 3 3.
1775 | 0
1776 | <_>
1777 |
1778 | <_>
1779 | 18 11 3 1 -1.
1780 | <_>
1781 | 19 11 1 1 3.
1782 | 0
1783 | <_>
1784 |
1785 | <_>
1786 | 19 6 32 2 -1.
1787 | <_>
1788 | 27 6 16 2 2.
1789 | 0
1790 | <_>
1791 |
1792 | <_>
1793 | 19 8 3 1 -1.
1794 | <_>
1795 | 20 8 1 1 3.
1796 | 0
1797 | <_>
1798 |
1799 | <_>
1800 | 19 9 14 11 -1.
1801 | <_>
1802 | 26 9 7 11 2.
1803 | 0
1804 | <_>
1805 |
1806 | <_>
1807 | 19 10 3 3 -1.
1808 | <_>
1809 | 20 10 1 3 3.
1810 | 0
1811 | <_>
1812 |
1813 | <_>
1814 | 19 13 7 3 -1.
1815 | <_>
1816 | 19 14 7 1 3.
1817 | 0
1818 | <_>
1819 |
1820 | <_>
1821 | 19 14 13 3 -1.
1822 | <_>
1823 | 19 15 13 1 3.
1824 | 0
1825 | <_>
1826 |
1827 | <_>
1828 | 20 0 15 20 -1.
1829 | <_>
1830 | 25 0 5 20 3.
1831 | 0
1832 | <_>
1833 |
1834 | <_>
1835 | 20 9 3 1 -1.
1836 | <_>
1837 | 21 9 1 1 3.
1838 | 0
1839 | <_>
1840 |
1841 | <_>
1842 | 20 10 3 2 -1.
1843 | <_>
1844 | 21 10 1 2 3.
1845 | 0
1846 | <_>
1847 |
1848 | <_>
1849 | 21 1 21 6 -1.
1850 | <_>
1851 | 21 3 21 2 3.
1852 | 0
1853 | <_>
1854 |
1855 | <_>
1856 | 21 8 4 3 -1.
1857 | <_>
1858 | 22 8 2 3 2.
1859 | 0
1860 | <_>
1861 |
1862 | <_>
1863 | 21 9 3 4 -1.
1864 | <_>
1865 | 22 9 1 4 3.
1866 | 0
1867 | <_>
1868 |
1869 | <_>
1870 | 21 10 4 2 -1.
1871 | <_>
1872 | 22 10 2 2 2.
1873 | 0
1874 | <_>
1875 |
1876 | <_>
1877 | 21 11 24 2 -1.
1878 | <_>
1879 | 27 11 12 2 2.
1880 | 0
1881 | <_>
1882 |
1883 | <_>
1884 | 21 18 4 1 -1.
1885 | <_>
1886 | 22 18 2 1 2.
1887 | 0
1888 | <_>
1889 |
1890 | <_>
1891 | 22 3 4 1 -1.
1892 | <_>
1893 | 23 3 2 1 2.
1894 | 0
1895 | <_>
1896 |
1897 | <_>
1898 | 22 6 2 6 -1.
1899 | <_>
1900 | 22 6 1 3 2.
1901 | <_>
1902 | 23 9 1 3 2.
1903 | 0
1904 | <_>
1905 |
1906 | <_>
1907 | 22 7 3 3 -1.
1908 | <_>
1909 | 23 8 1 1 9.
1910 | 0
1911 | <_>
1912 |
1913 | <_>
1914 | 22 8 3 5 -1.
1915 | <_>
1916 | 23 8 1 5 3.
1917 | 0
1918 | <_>
1919 |
1920 | <_>
1921 | 22 9 3 2 -1.
1922 | <_>
1923 | 23 9 1 2 3.
1924 | 0
1925 | <_>
1926 |
1927 | <_>
1928 | 23 8 3 3 -1.
1929 | <_>
1930 | 24 8 1 3 3.
1931 | 0
1932 | <_>
1933 |
1934 | <_>
1935 | 23 10 3 2 -1.
1936 | <_>
1937 | 24 10 1 2 3.
1938 | 0
1939 | <_>
1940 |
1941 | <_>
1942 | 24 3 20 17 -1.
1943 | <_>
1944 | 29 3 10 17 2.
1945 | 0
1946 | <_>
1947 |
1948 | <_>
1949 | 24 4 14 6 -1.
1950 | <_>
1951 | 31 4 7 6 2.
1952 | 0
1953 | <_>
1954 |
1955 | <_>
1956 | 24 18 9 2 -1.
1957 | <_>
1958 | 27 18 3 2 3.
1959 | 0
1960 | <_>
1961 |
1962 | <_>
1963 | 25 5 8 4 -1.
1964 | <_>
1965 | 25 5 4 4 2.
1966 | 1
1967 | <_>
1968 |
1969 | <_>
1970 | 25 6 22 14 -1.
1971 | <_>
1972 | 36 6 11 14 2.
1973 | 0
1974 | <_>
1975 |
1976 | <_>
1977 | 25 12 28 8 -1.
1978 | <_>
1979 | 25 14 28 4 2.
1980 | 0
1981 | <_>
1982 |
1983 | <_>
1984 | 25 14 9 3 -1.
1985 | <_>
1986 | 25 15 9 1 3.
1987 | 0
1988 | <_>
1989 |
1990 | <_>
1991 | 26 2 27 18 -1.
1992 | <_>
1993 | 35 2 9 18 3.
1994 | 0
1995 | <_>
1996 |
1997 | <_>
1998 | 26 3 22 3 -1.
1999 | <_>
2000 | 26 4 22 1 3.
2001 | 0
2002 | <_>
2003 |
2004 | <_>
2005 | 26 4 8 4 -1.
2006 | <_>
2007 | 30 4 4 4 2.
2008 | 0
2009 | <_>
2010 |
2011 | <_>
2012 | 26 4 20 6 -1.
2013 | <_>
2014 | 31 4 10 6 2.
2015 | 0
2016 | <_>
2017 |
2018 | <_>
2019 | 26 7 1 12 -1.
2020 | <_>
2021 | 22 11 1 4 3.
2022 | 1
2023 | <_>
2024 |
2025 | <_>
2026 | 26 9 3 3 -1.
2027 | <_>
2028 | 27 9 1 3 3.
2029 | 0
2030 | <_>
2031 |
2032 | <_>
2033 | 26 13 9 3 -1.
2034 | <_>
2035 | 26 14 9 1 3.
2036 | 0
2037 | <_>
2038 |
2039 | <_>
2040 | 27 3 15 6 -1.
2041 | <_>
2042 | 32 3 5 6 3.
2043 | 0
2044 | <_>
2045 |
2046 | <_>
2047 | 27 9 3 1 -1.
2048 | <_>
2049 | 28 9 1 1 3.
2050 | 0
2051 | <_>
2052 |
2053 | <_>
2054 | 27 9 3 2 -1.
2055 | <_>
2056 | 28 9 1 2 3.
2057 | 0
2058 | <_>
2059 |
2060 | <_>
2061 | 27 10 3 3 -1.
2062 | <_>
2063 | 28 10 1 3 3.
2064 | 0
2065 | <_>
2066 |
2067 | <_>
2068 | 27 11 3 2 -1.
2069 | <_>
2070 | 28 11 1 2 3.
2071 | 0
2072 | <_>
2073 |
2074 | <_>
2075 | 28 2 10 4 -1.
2076 | <_>
2077 | 28 2 10 2 2.
2078 | 1
2079 | <_>
2080 |
2081 | <_>
2082 | 28 8 32 6 -1.
2083 | <_>
2084 | 28 10 32 2 3.
2085 | 0
2086 | <_>
2087 |
2088 | <_>
2089 | 28 10 3 1 -1.
2090 | <_>
2091 | 29 10 1 1 3.
2092 | 0
2093 | <_>
2094 |
2095 | <_>
2096 | 28 11 3 1 -1.
2097 | <_>
2098 | 29 11 1 1 3.
2099 | 0
2100 | <_>
2101 |
2102 | <_>
2103 | 28 15 5 4 -1.
2104 | <_>
2105 | 28 16 5 2 2.
2106 | 0
2107 | <_>
2108 |
2109 | <_>
2110 | 28 16 23 4 -1.
2111 | <_>
2112 | 28 17 23 2 2.
2113 | 0
2114 | <_>
2115 |
2116 | <_>
2117 | 28 19 6 1 -1.
2118 | <_>
2119 | 30 19 2 1 3.
2120 | 0
2121 | <_>
2122 |
2123 | <_>
2124 | 29 3 9 4 -1.
2125 | <_>
2126 | 32 3 3 4 3.
2127 | 0
2128 | <_>
2129 |
2130 | <_>
2131 | 29 5 9 1 -1.
2132 | <_>
2133 | 32 5 3 1 3.
2134 | 0
2135 | <_>
2136 |
2137 | <_>
2138 | 29 8 3 6 -1.
2139 | <_>
2140 | 30 8 1 6 3.
2141 | 0
2142 | <_>
2143 |
2144 | <_>
2145 | 29 9 3 1 -1.
2146 | <_>
2147 | 30 9 1 1 3.
2148 | 0
2149 | <_>
2150 |
2151 | <_>
2152 | 29 11 10 4 -1.
2153 | <_>
2154 | 29 13 10 2 2.
2155 | 0
2156 | <_>
2157 |
2158 | <_>
2159 | 29 11 26 8 -1.
2160 | <_>
2161 | 29 13 26 4 2.
2162 | 0
2163 | <_>
2164 |
2165 | <_>
2166 | 30 0 16 6 -1.
2167 | <_>
2168 | 30 3 16 3 2.
2169 | 0
2170 | <_>
2171 |
2172 | <_>
2173 | 30 2 30 6 -1.
2174 | <_>
2175 | 30 2 15 3 2.
2176 | <_>
2177 | 45 5 15 3 2.
2178 | 0
2179 | <_>
2180 |
2181 | <_>
2182 | 30 3 9 4 -1.
2183 | <_>
2184 | 33 3 3 4 3.
2185 | 0
2186 | <_>
2187 |
2188 | <_>
2189 | 30 5 9 4 -1.
2190 | <_>
2191 | 30 6 9 2 2.
2192 | 0
2193 | <_>
2194 |
2195 | <_>
2196 | 30 10 3 2 -1.
2197 | <_>
2198 | 31 10 1 2 3.
2199 | 0
2200 | <_>
2201 |
2202 | <_>
2203 | 30 14 18 6 -1.
2204 | <_>
2205 | 36 14 6 6 3.
2206 | 0
2207 | <_>
2208 |
2209 | <_>
2210 | 31 3 4 3 -1.
2211 | <_>
2212 | 32 3 2 3 2.
2213 | 0
2214 | <_>
2215 |
2216 | <_>
2217 | 31 7 4 9 -1.
2218 | <_>
2219 | 32 7 2 9 2.
2220 | 0
2221 | <_>
2222 |
2223 | <_>
2224 | 31 11 3 2 -1.
2225 | <_>
2226 | 32 11 1 2 3.
2227 | 0
2228 | <_>
2229 |
2230 | <_>
2231 | 31 11 3 3 -1.
2232 | <_>
2233 | 32 11 1 3 3.
2234 | 0
2235 | <_>
2236 |
2237 | <_>
2238 | 32 4 3 2 -1.
2239 | <_>
2240 | 33 4 1 2 3.
2241 | 0
2242 | <_>
2243 |
2244 | <_>
2245 | 32 6 18 6 -1.
2246 | <_>
2247 | 32 6 9 3 2.
2248 | <_>
2249 | 41 9 9 3 2.
2250 | 0
2251 | <_>
2252 |
2253 | <_>
2254 | 33 1 22 6 -1.
2255 | <_>
2256 | 33 4 22 3 2.
2257 | 0
2258 | <_>
2259 |
2260 | <_>
2261 | 33 3 4 2 -1.
2262 | <_>
2263 | 34 3 2 2 2.
2264 | 0
2265 | <_>
2266 |
2267 | <_>
2268 | 33 3 4 4 -1.
2269 | <_>
2270 | 34 3 2 4 2.
2271 | 0
2272 | <_>
2273 |
2274 | <_>
2275 | 33 5 4 1 -1.
2276 | <_>
2277 | 34 5 2 1 2.
2278 | 0
2279 | <_>
2280 |
2281 | <_>
2282 | 33 9 3 6 -1.
2283 | <_>
2284 | 34 9 1 6 3.
2285 | 0
2286 | <_>
2287 |
2288 | <_>
2289 | 33 10 3 3 -1.
2290 | <_>
2291 | 34 10 1 3 3.
2292 | 0
2293 | <_>
2294 |
2295 | <_>
2296 | 34 8 4 7 -1.
2297 | <_>
2298 | 35 8 2 7 2.
2299 | 0
2300 | <_>
2301 |
2302 | <_>
2303 | 34 9 3 5 -1.
2304 | <_>
2305 | 35 9 1 5 3.
2306 | 0
2307 | <_>
2308 |
2309 | <_>
2310 | 34 18 9 2 -1.
2311 | <_>
2312 | 37 18 3 2 3.
2313 | 0
2314 | <_>
2315 |
2316 | <_>
2317 | 35 0 8 6 -1.
2318 | <_>
2319 | 37 0 4 6 2.
2320 | 0
2321 | <_>
2322 |
2323 | <_>
2324 | 35 9 3 2 -1.
2325 | <_>
2326 | 36 9 1 2 3.
2327 | 0
2328 | <_>
2329 |
2330 | <_>
2331 | 36 9 24 9 -1.
2332 | <_>
2333 | 42 9 12 9 2.
2334 | 0
2335 | <_>
2336 |
2337 | <_>
2338 | 37 1 16 18 -1.
2339 | <_>
2340 | 41 1 8 18 2.
2341 | 0
2342 | <_>
2343 |
2344 | <_>
2345 | 37 11 20 8 -1.
2346 | <_>
2347 | 42 11 10 8 2.
2348 | 0
2349 | <_>
2350 |
2351 | <_>
2352 | 38 8 15 12 -1.
2353 | <_>
2354 | 38 12 15 4 3.
2355 | 0
2356 | <_>
2357 |
2358 | <_>
2359 | 39 6 12 8 -1.
2360 | <_>
2361 | 45 6 6 8 2.
2362 | 0
2363 | <_>
2364 |
2365 | <_>
2366 | 40 8 8 4 -1.
2367 | <_>
2368 | 40 8 8 2 2.
2369 | 1
2370 | <_>
2371 |
2372 | <_>
2373 | 40 10 3 1 -1.
2374 | <_>
2375 | 41 10 1 1 3.
2376 | 0
2377 | <_>
2378 |
2379 | <_>
2380 | 40 10 3 5 -1.
2381 | <_>
2382 | 41 10 1 5 3.
2383 | 0
2384 | <_>
2385 |
2386 | <_>
2387 | 40 13 12 6 -1.
2388 | <_>
2389 | 43 13 6 6 2.
2390 | 0
2391 | <_>
2392 |
2393 | <_>
2394 | 41 5 7 15 -1.
2395 | <_>
2396 | 41 10 7 5 3.
2397 | 0
2398 | <_>
2399 |
2400 | <_>
2401 | 41 6 12 6 -1.
2402 | <_>
2403 | 45 6 4 6 3.
2404 | 0
2405 | <_>
2406 |
2407 | <_>
2408 | 41 7 12 7 -1.
2409 | <_>
2410 | 45 7 4 7 3.
2411 | 0
2412 | <_>
2413 |
2414 | <_>
2415 | 41 8 12 12 -1.
2416 | <_>
2417 | 45 8 4 12 3.
2418 | 0
2419 | <_>
2420 |
2421 | <_>
2422 | 41 9 3 6 -1.
2423 | <_>
2424 | 42 9 1 6 3.
2425 | 0
2426 | <_>
2427 |
2428 | <_>
2429 | 42 2 3 13 -1.
2430 | <_>
2431 | 43 2 1 13 3.
2432 | 0
2433 | <_>
2434 |
2435 | <_>
2436 | 42 4 18 10 -1.
2437 | <_>
2438 | 42 4 9 5 2.
2439 | <_>
2440 | 51 9 9 5 2.
2441 | 0
2442 | <_>
2443 |
2444 | <_>
2445 | 42 5 18 8 -1.
2446 | <_>
2447 | 42 5 9 4 2.
2448 | <_>
2449 | 51 9 9 4 2.
2450 | 0
2451 | <_>
2452 |
2453 | <_>
2454 | 42 7 2 7 -1.
2455 | <_>
2456 | 43 7 1 7 2.
2457 | 0
2458 | <_>
2459 |
2460 | <_>
2461 | 42 14 12 5 -1.
2462 | <_>
2463 | 46 14 4 5 3.
2464 | 0
2465 | <_>
2466 |
2467 | <_>
2468 | 43 1 10 9 -1.
2469 | <_>
2470 | 40 4 10 3 3.
2471 | 1
2472 | <_>
2473 |
2474 | <_>
2475 | 43 6 6 6 -1.
2476 | <_>
2477 | 43 9 6 3 2.
2478 | 0
2479 | <_>
2480 |
2481 | <_>
2482 | 44 0 8 20 -1.
2483 | <_>
2484 | 46 0 4 20 2.
2485 | 0
2486 | <_>
2487 |
2488 | <_>
2489 | 44 2 16 12 -1.
2490 | <_>
2491 | 44 2 8 6 2.
2492 | <_>
2493 | 52 8 8 6 2.
2494 | 0
2495 | <_>
2496 |
2497 | <_>
2498 | 44 5 3 8 -1.
2499 | <_>
2500 | 45 5 1 8 3.
2501 | 0
2502 | <_>
2503 |
2504 | <_>
2505 | 44 8 3 4 -1.
2506 | <_>
2507 | 45 8 1 4 3.
2508 | 0
2509 | <_>
2510 |
2511 | <_>
2512 | 44 12 16 4 -1.
2513 | <_>
2514 | 52 12 8 4 2.
2515 | 0
2516 | <_>
2517 |
2518 | <_>
2519 | 44 13 10 3 -1.
2520 | <_>
2521 | 49 13 5 3 2.
2522 | 0
2523 | <_>
2524 |
2525 | <_>
2526 | 45 19 9 1 -1.
2527 | <_>
2528 | 48 19 3 1 3.
2529 | 0
2530 | <_>
2531 |
2532 | <_>
2533 | 46 3 8 8 -1.
2534 | <_>
2535 | 50 3 4 8 2.
2536 | 0
2537 | <_>
2538 |
2539 | <_>
2540 | 47 12 10 6 -1.
2541 | <_>
2542 | 52 12 5 6 2.
2543 | 0
2544 | <_>
2545 |
2546 | <_>
2547 | 48 0 4 13 -1.
2548 | <_>
2549 | 49 0 2 13 2.
2550 | 0
2551 | <_>
2552 |
2553 | <_>
2554 | 48 5 3 12 -1.
2555 | <_>
2556 | 45 8 3 6 2.
2557 | 1
2558 | <_>
2559 |
2560 | <_>
2561 | 48 9 12 8 -1.
2562 | <_>
2563 | 54 9 6 8 2.
2564 | 0
2565 | <_>
2566 |
2567 | <_>
2568 | 48 13 12 4 -1.
2569 | <_>
2570 | 54 13 6 4 2.
2571 | 0
2572 | <_>
2573 |
2574 | <_>
2575 | 49 8 3 1 -1.
2576 | <_>
2577 | 50 8 1 1 3.
2578 | 0
2579 | <_>
2580 |
2581 | <_>
2582 | 49 8 3 2 -1.
2583 | <_>
2584 | 50 8 1 2 3.
2585 | 0
2586 | <_>
2587 |
2588 | <_>
2589 | 49 8 3 3 -1.
2590 | <_>
2591 | 50 8 1 3 3.
2592 | 0
2593 | <_>
2594 |
2595 | <_>
2596 | 50 9 3 3 -1.
2597 | <_>
2598 | 51 10 1 1 9.
2599 | 0
2600 | <_>
2601 |
2602 | <_>
2603 | 51 8 3 3 -1.
2604 | <_>
2605 | 52 8 1 3 3.
2606 | 0
2607 | <_>
2608 |
2609 | <_>
2610 | 52 6 6 10 -1.
2611 | <_>
2612 | 54 6 2 10 3.
2613 | 0
2614 | <_>
2615 |
2616 | <_>
2617 | 52 7 8 7 -1.
2618 | <_>
2619 | 56 7 4 7 2.
2620 | 0
2621 | <_>
2622 |
2623 | <_>
2624 | 52 8 8 4 -1.
2625 | <_>
2626 | 52 8 8 2 2.
2627 | 1
2628 | <_>
2629 |
2630 | <_>
2631 | 54 3 6 15 -1.
2632 | <_>
2633 | 57 3 3 15 2.
2634 | 0
2635 | <_>
2636 |
2637 | <_>
2638 | 54 8 6 7 -1.
2639 | <_>
2640 | 57 8 3 7 2.
2641 | 0
2642 | <_>
2643 |
2644 | <_>
2645 | 57 11 3 6 -1.
2646 | <_>
2647 | 57 13 3 2 3.
2648 | 0
2649 | <_>
2650 |
2651 | <_>
2652 | 59 8 1 3 -1.
2653 | <_>
2654 | 59 9 1 1 3.
2655 | 0
2656 |
2657 |
--------------------------------------------------------------------------------
/Intermediate/Custom Object Detection/objectDetectoin.py:
--------------------------------------------------------------------------------
1 | import cv2
2 |
3 | ################################################################
4 | path = 'haarcascades/haarcascade_frontalface_default.xml' # PATH OF THE CASCADE
5 | cameraNo = 1 # CAMERA NUMBER
6 | objectName = 'Arduino' # OBJECT NAME TO DISPLAY
7 | frameWidth= 640 # DISPLAY WIDTH
8 | frameHeight = 480 # DISPLAY HEIGHT
9 | color= (255,0,255)
10 | #################################################################
11 |
12 |
13 | cap = cv2.VideoCapture(cameraNo)
14 | cap.set(3, frameWidth)
15 | cap.set(4, frameHeight)
16 |
17 | def empty(a):
18 | pass
19 |
20 | # CREATE TRACKBAR
21 | cv2.namedWindow("Result")
22 | cv2.resizeWindow("Result",frameWidth,frameHeight+100)
23 | cv2.createTrackbar("Scale","Result",400,1000,empty)
24 | cv2.createTrackbar("Neig","Result",8,50,empty)
25 | cv2.createTrackbar("Min Area","Result",0,100000,empty)
26 | cv2.createTrackbar("Brightness","Result",180,255,empty)
27 |
28 | # LOAD THE CLASSIFIERS DOWNLOADED
29 | cascade = cv2.CascadeClassifier(path)
30 |
31 | while True:
32 | # SET CAMERA BRIGHTNESS FROM TRACKBAR VALUE
33 | cameraBrightness = cv2.getTrackbarPos("Brightness", "Result")
34 | cap.set(10, cameraBrightness)
35 | # GET CAMERA IMAGE AND CONVERT TO GRAYSCALE
36 | success, img = cap.read()
37 | gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
38 | # DETECT THE OBJECT USING THE CASCADE
39 | scaleVal =1 + (cv2.getTrackbarPos("Scale", "Result") /1000)
40 | neig=cv2.getTrackbarPos("Neig", "Result")
41 | objects = cascade.detectMultiScale(gray,scaleVal, neig)
42 | # DISPLAY THE DETECTED OBJECTS
43 | for (x,y,w,h) in objects:
44 | area = w*h
45 | minArea = cv2.getTrackbarPos("Min Area", "Result")
46 | if area >minArea:
47 | cv2.rectangle(img,(x,y),(x+w,y+h),color,3)
48 | cv2.putText(img,objectName,(x,y-5),cv2.FONT_HERSHEY_COMPLEX_SMALL,1,color,2)
49 | roi_color = img[y:y+h, x:x+w]
50 |
51 | cv2.imshow("Result", img)
52 |
53 | if cv2.waitKey(1) & 0xFF == ord('q'):
54 | break
55 |
--------------------------------------------------------------------------------
/Intermediate/Object Measurement/1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/murtazahassan/OpenCV-Python-Tutorials-and-Projects/1b3123aac0b315f7e84e757bb380d494b0bbd048/Intermediate/Object Measurement/1.jpg
--------------------------------------------------------------------------------
/Intermediate/Object Measurement/ObjectMeasurement.py:
--------------------------------------------------------------------------------
1 | import cv2
2 | import utlis
3 |
4 | ###################################
5 | webcam = True
6 | path = '1.jpg'
7 | cap = cv2.VideoCapture(0)
8 | cap.set(10,160)
9 | cap.set(3,1920)
10 | cap.set(4,1080)
11 | scale = 3
12 | wP = 210 *scale
13 | hP= 297 *scale
14 | ###################################
15 |
16 | while True:
17 | if webcam:success,img = cap.read()
18 | else: img = cv2.imread(path)
19 |
20 | imgContours , conts = utlis.getContours(img,minArea=50000,filter=4)
21 | if len(conts) != 0:
22 | biggest = conts[0][2]
23 | #print(biggest)
24 | imgWarp = utlis.warpImg(img, biggest, wP,hP)
25 | imgContours2, conts2 = utlis.getContours(imgWarp,
26 | minArea=2000, filter=4,
27 | cThr=[50,50],draw = False)
28 | if len(conts) != 0:
29 | for obj in conts2:
30 | cv2.polylines(imgContours2,[obj[2]],True,(0,255,0),2)
31 | nPoints = utlis.reorder(obj[2])
32 | nW = round((utlis.findDis(nPoints[0][0]//scale,nPoints[1][0]//scale)/10),1)
33 | nH = round((utlis.findDis(nPoints[0][0]//scale,nPoints[2][0]//scale)/10),1)
34 | cv2.arrowedLine(imgContours2, (nPoints[0][0][0], nPoints[0][0][1]), (nPoints[1][0][0], nPoints[1][0][1]),
35 | (255, 0, 255), 3, 8, 0, 0.05)
36 | cv2.arrowedLine(imgContours2, (nPoints[0][0][0], nPoints[0][0][1]), (nPoints[2][0][0], nPoints[2][0][1]),
37 | (255, 0, 255), 3, 8, 0, 0.05)
38 | x, y, w, h = obj[3]
39 | cv2.putText(imgContours2, '{}cm'.format(nW), (x + 30, y - 10), cv2.FONT_HERSHEY_COMPLEX_SMALL, 1.5,
40 | (255, 0, 255), 2)
41 | cv2.putText(imgContours2, '{}cm'.format(nH), (x - 70, y + h // 2), cv2.FONT_HERSHEY_COMPLEX_SMALL, 1.5,
42 | (255, 0, 255), 2)
43 | cv2.imshow('A4', imgContours2)
44 |
45 | img = cv2.resize(img,(0,0),None,0.5,0.5)
46 | cv2.imshow('Original',img)
47 | cv2.waitKey(1)
--------------------------------------------------------------------------------
/Intermediate/Object Measurement/ReadMe.md:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/Intermediate/Object Measurement/utlis.py:
--------------------------------------------------------------------------------
1 | import cv2
2 | import numpy as np
3 |
4 | def getContours(img,cThr=[100,100],showCanny=False,minArea=1000,filter=0,draw =False):
5 | imgGray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
6 | imgBlur = cv2.GaussianBlur(imgGray,(5,5),1)
7 | imgCanny = cv2.Canny(imgBlur,cThr[0],cThr[1])
8 | kernel = np.ones((5,5))
9 | imgDial = cv2.dilate(imgCanny,kernel,iterations=3)
10 | imgThre = cv2.erode(imgDial,kernel,iterations=2)
11 | if showCanny:cv2.imshow('Canny',imgThre)
12 | contours,hiearchy = cv2.findContours(imgThre,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)
13 | finalCountours = []
14 | for i in contours:
15 | area = cv2.contourArea(i)
16 | if area > minArea:
17 | peri = cv2.arcLength(i,True)
18 | approx = cv2.approxPolyDP(i,0.02*peri,True)
19 | bbox = cv2.boundingRect(approx)
20 | if filter > 0:
21 | if len(approx) == filter:
22 | finalCountours.append([len(approx),area,approx,bbox,i])
23 | else:
24 | finalCountours.append([len(approx),area,approx,bbox,i])
25 | finalCountours = sorted(finalCountours,key = lambda x:x[1] ,reverse= True)
26 | if draw:
27 | for con in finalCountours:
28 | cv2.drawContours(img,con[4],-1,(0,0,255),3)
29 | return img, finalCountours
30 |
31 | def reorder(myPoints):
32 | #print(myPoints.shape)
33 | myPointsNew = np.zeros_like(myPoints)
34 | myPoints = myPoints.reshape((4,2))
35 | add = myPoints.sum(1)
36 | myPointsNew[0] = myPoints[np.argmin(add)]
37 | myPointsNew[3] = myPoints[np.argmax(add)]
38 | diff = np.diff(myPoints,axis=1)
39 | myPointsNew[1]= myPoints[np.argmin(diff)]
40 | myPointsNew[2] = myPoints[np.argmax(diff)]
41 | return myPointsNew
42 |
43 | def warpImg (img,points,w,h,pad=20):
44 | # print(points)
45 | points =reorder(points)
46 | pts1 = np.float32(points)
47 | pts2 = np.float32([[0,0],[w,0],[0,h],[w,h]])
48 | matrix = cv2.getPerspectiveTransform(pts1,pts2)
49 | imgWarp = cv2.warpPerspective(img,matrix,(w,h))
50 | imgWarp = imgWarp[pad:imgWarp.shape[0]-pad,pad:imgWarp.shape[1]-pad]
51 | return imgWarp
52 |
53 | def findDis(pts1,pts2):
54 | return ((pts2[0]-pts1[0])**2 + (pts2[1]-pts1[1])**2)**0.5
55 |
56 |
57 |
--------------------------------------------------------------------------------
/Intermediate/QrCodeBarCode/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/murtazahassan/OpenCV-Python-Tutorials-and-Projects/1b3123aac0b315f7e84e757bb380d494b0bbd048/Intermediate/QrCodeBarCode/1.png
--------------------------------------------------------------------------------
/Intermediate/QrCodeBarCode/Images/Barcode (1).gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/murtazahassan/OpenCV-Python-Tutorials-and-Projects/1b3123aac0b315f7e84e757bb380d494b0bbd048/Intermediate/QrCodeBarCode/Images/Barcode (1).gif
--------------------------------------------------------------------------------
/Intermediate/QrCodeBarCode/Images/Barcode (4).gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/murtazahassan/OpenCV-Python-Tutorials-and-Projects/1b3123aac0b315f7e84e757bb380d494b0bbd048/Intermediate/QrCodeBarCode/Images/Barcode (4).gif
--------------------------------------------------------------------------------
/Intermediate/QrCodeBarCode/Images/Barcode (5).gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/murtazahassan/OpenCV-Python-Tutorials-and-Projects/1b3123aac0b315f7e84e757bb380d494b0bbd048/Intermediate/QrCodeBarCode/Images/Barcode (5).gif
--------------------------------------------------------------------------------
/Intermediate/QrCodeBarCode/Images/Barnangen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/murtazahassan/OpenCV-Python-Tutorials-and-Projects/1b3123aac0b315f7e84e757bb380d494b0bbd048/Intermediate/QrCodeBarCode/Images/Barnangen.png
--------------------------------------------------------------------------------
/Intermediate/QrCodeBarCode/Images/Emily.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/murtazahassan/OpenCV-Python-Tutorials-and-Projects/1b3123aac0b315f7e84e757bb380d494b0bbd048/Intermediate/QrCodeBarCode/Images/Emily.png
--------------------------------------------------------------------------------
/Intermediate/QrCodeBarCode/Images/Jhon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/murtazahassan/OpenCV-Python-Tutorials-and-Projects/1b3123aac0b315f7e84e757bb380d494b0bbd048/Intermediate/QrCodeBarCode/Images/Jhon.png
--------------------------------------------------------------------------------
/Intermediate/QrCodeBarCode/Images/Perfume.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/murtazahassan/OpenCV-Python-Tutorials-and-Projects/1b3123aac0b315f7e84e757bb380d494b0bbd048/Intermediate/QrCodeBarCode/Images/Perfume.png
--------------------------------------------------------------------------------
/Intermediate/QrCodeBarCode/Images/Qr (1).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/murtazahassan/OpenCV-Python-Tutorials-and-Projects/1b3123aac0b315f7e84e757bb380d494b0bbd048/Intermediate/QrCodeBarCode/Images/Qr (1).png
--------------------------------------------------------------------------------
/Intermediate/QrCodeBarCode/Images/Qr (2).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/murtazahassan/OpenCV-Python-Tutorials-and-Projects/1b3123aac0b315f7e84e757bb380d494b0bbd048/Intermediate/QrCodeBarCode/Images/Qr (2).png
--------------------------------------------------------------------------------
/Intermediate/QrCodeBarCode/Images/Qr (3).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/murtazahassan/OpenCV-Python-Tutorials-and-Projects/1b3123aac0b315f7e84e757bb380d494b0bbd048/Intermediate/QrCodeBarCode/Images/Qr (3).png
--------------------------------------------------------------------------------
/Intermediate/QrCodeBarCode/Images/Qr (4).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/murtazahassan/OpenCV-Python-Tutorials-and-Projects/1b3123aac0b315f7e84e757bb380d494b0bbd048/Intermediate/QrCodeBarCode/Images/Qr (4).png
--------------------------------------------------------------------------------
/Intermediate/QrCodeBarCode/Images/Qr (5).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/murtazahassan/OpenCV-Python-Tutorials-and-Projects/1b3123aac0b315f7e84e757bb380d494b0bbd048/Intermediate/QrCodeBarCode/Images/Qr (5).png
--------------------------------------------------------------------------------
/Intermediate/QrCodeBarCode/Images/Qr (6).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/murtazahassan/OpenCV-Python-Tutorials-and-Projects/1b3123aac0b315f7e84e757bb380d494b0bbd048/Intermediate/QrCodeBarCode/Images/Qr (6).png
--------------------------------------------------------------------------------
/Intermediate/QrCodeBarCode/Images/Qr (7).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/murtazahassan/OpenCV-Python-Tutorials-and-Projects/1b3123aac0b315f7e84e757bb380d494b0bbd048/Intermediate/QrCodeBarCode/Images/Qr (7).png
--------------------------------------------------------------------------------
/Intermediate/QrCodeBarCode/Images/Qr (8).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/murtazahassan/OpenCV-Python-Tutorials-and-Projects/1b3123aac0b315f7e84e757bb380d494b0bbd048/Intermediate/QrCodeBarCode/Images/Qr (8).png
--------------------------------------------------------------------------------
/Intermediate/QrCodeBarCode/Images/Qr (9).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/murtazahassan/OpenCV-Python-Tutorials-and-Projects/1b3123aac0b315f7e84e757bb380d494b0bbd048/Intermediate/QrCodeBarCode/Images/Qr (9).png
--------------------------------------------------------------------------------
/Intermediate/QrCodeBarCode/Images/Vitamin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/murtazahassan/OpenCV-Python-Tutorials-and-Projects/1b3123aac0b315f7e84e757bb380d494b0bbd048/Intermediate/QrCodeBarCode/Images/Vitamin.png
--------------------------------------------------------------------------------
/Intermediate/QrCodeBarCode/QrBarTest.py:
--------------------------------------------------------------------------------
1 | import cv2
2 | import numpy as np
3 | from pyzbar.pyzbar import decode
4 |
5 | #img = cv2.imread('1.png')
6 | cap = cv2.VideoCapture(0)
7 | cap.set(3,640)
8 | cap.set(4,480)
9 |
10 | while True:
11 |
12 | success, img = cap.read()
13 | for barcode in decode(img):
14 | myData = barcode.data.decode('utf-8')
15 | print(myData)
16 | pts = np.array([barcode.polygon],np.int32)
17 | pts = pts.reshape((-1,1,2))
18 | cv2.polylines(img,[pts],True,(255,0,255),5)
19 | pts2 = barcode.rect
20 | cv2.putText(img,myData,(pts2[0],pts2[1]),cv2.FONT_HERSHEY_SIMPLEX,
21 | 0.9,(255,0,255),2)
22 |
23 | cv2.imshow('Result',img)
24 | cv2.waitKey(1)
25 |
26 |
--------------------------------------------------------------------------------
/Intermediate/QrCodeBarCode/QrCodeProject.py:
--------------------------------------------------------------------------------
1 | import cv2
2 | import numpy as np
3 | from pyzbar.pyzbar import decode
4 |
5 | #img = cv2.imread('1.png')
6 | cap = cv2.VideoCapture(0)
7 | cap.set(3,640)
8 | cap.set(4,480)
9 |
10 | with open('myDataFile.text') as f:
11 | myDataList = f.read().splitlines()
12 |
13 | while True:
14 |
15 | success, img = cap.read()
16 | for barcode in decode(img):
17 | myData = barcode.data.decode('utf-8')
18 | print(myData)
19 |
20 | if myData in myDataList:
21 | myOutput = 'Authorized'
22 | myColor = (0,255,0)
23 | else:
24 | myOutput = 'Un-Authorized'
25 | myColor = (0, 0, 255)
26 |
27 | pts = np.array([barcode.polygon],np.int32)
28 | pts = pts.reshape((-1,1,2))
29 | cv2.polylines(img,[pts],True,myColor,5)
30 | pts2 = barcode.rect
31 | cv2.putText(img,myOutput,(pts2[0],pts2[1]),cv2.FONT_HERSHEY_SIMPLEX,
32 | 0.9,myColor,2)
33 |
34 | cv2.imshow('Result',img)
35 | cv2.waitKey(1)
36 |
37 |
--------------------------------------------------------------------------------
/Intermediate/QrCodeBarCode/Readme.md:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/Intermediate/QrCodeBarCode/myDataFile.text:
--------------------------------------------------------------------------------
1 | 111111
2 | 111112
3 | 111113
4 | 111114
5 | 111115
--------------------------------------------------------------------------------
/Intermediate/RealTime_Color_Detection.py:
--------------------------------------------------------------------------------
1 | import cv2
2 | import numpy as np
3 |
4 | frameWidth = 640
5 | frameHeight = 480
6 | cap = cv2.VideoCapture(1)
7 | cap.set(3, frameWidth)
8 | cap.set(4, frameHeight)
9 |
10 | def empty(a):
11 | pass
12 |
13 | cv2.namedWindow("HSV")
14 | cv2.resizeWindow("HSV",640,240)
15 | cv2.createTrackbar("HUE Min","HSV",0,179,empty)
16 | cv2.createTrackbar("HUE Max","HSV",179,179,empty)
17 | cv2.createTrackbar("SAT Min","HSV",0,255,empty)
18 | cv2.createTrackbar("SAT Max","HSV",255,255,empty)
19 | cv2.createTrackbar("VALUE Min","HSV",0,255,empty)
20 | cv2.createTrackbar("VALUE Max","HSV",255,255,empty)
21 |
22 | while True:
23 |
24 | _, img = cap.read()
25 | imgHsv = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)
26 |
27 | h_min = cv2.getTrackbarPos("HUE Min","HSV")
28 | h_max = cv2.getTrackbarPos("HUE Max", "HSV")
29 | s_min = cv2.getTrackbarPos("SAT Min", "HSV")
30 | s_max = cv2.getTrackbarPos("SAT Max", "HSV")
31 | v_min = cv2.getTrackbarPos("VALUE Min", "HSV")
32 | v_max = cv2.getTrackbarPos("VALUE Max", "HSV")
33 | print(h_min)
34 |
35 | lower = np.array([h_min,s_min,v_min])
36 | upper = np.array([h_max,s_max,v_max])
37 | mask = cv2.inRange(imgHsv,lower,upper)
38 | result = cv2.bitwise_and(img,img, mask = mask)
39 |
40 | mask = cv2.cvtColor(mask, cv2.COLOR_GRAY2BGR)
41 | hStack = np.hstack([img,mask,result])
42 | #cv2.imshow('Original', img)
43 | #cv2.imshow('HSV Color Space', imgHsv)
44 | #cv2.imshow('Mask', mask)
45 | #cv2.imshow('Result', result)
46 | cv2.imshow('Horizontal Stacking', hStack)
47 | if cv2.waitKey(1) & 0xFF == ord('q'):
48 | break
49 |
50 | cap.release()
51 | cv2.destroyAllWindows()
52 |
--------------------------------------------------------------------------------
/Intermediate/RealTime_Shape_Detection_Contours.py:
--------------------------------------------------------------------------------
1 | import cv2
2 | import numpy as np
3 |
4 | frameWidth = 640
5 | frameHeight = 480
6 | cap = cv2.VideoCapture(0)
7 | cap.set(3, frameWidth)
8 | cap.set(4, frameHeight)
9 |
10 | def empty(a):
11 | pass
12 |
13 | cv2.namedWindow("Parameters")
14 | cv2.resizeWindow("Parameters",640,240)
15 | cv2.createTrackbar("Threshold1","Parameters",23,255,empty)
16 | cv2.createTrackbar("Threshold2","Parameters",20,255,empty)
17 | cv2.createTrackbar("Area","Parameters",5000,30000,empty)
18 |
19 | def stackImages(scale,imgArray):
20 | rows = len(imgArray)
21 | cols = len(imgArray[0])
22 | rowsAvailable = isinstance(imgArray[0], list)
23 | width = imgArray[0][0].shape[1]
24 | height = imgArray[0][0].shape[0]
25 | if rowsAvailable:
26 | for x in range ( 0, rows):
27 | for y in range(0, cols):
28 | if imgArray[x][y].shape[:2] == imgArray[0][0].shape [:2]:
29 | imgArray[x][y] = cv2.resize(imgArray[x][y], (0, 0), None, scale, scale)
30 | else:
31 | imgArray[x][y] = cv2.resize(imgArray[x][y], (imgArray[0][0].shape[1], imgArray[0][0].shape[0]), None, scale, scale)
32 | if len(imgArray[x][y].shape) == 2: imgArray[x][y]= cv2.cvtColor( imgArray[x][y], cv2.COLOR_GRAY2BGR)
33 | imageBlank = np.zeros((height, width, 3), np.uint8)
34 | hor = [imageBlank]*rows
35 | hor_con = [imageBlank]*rows
36 | for x in range(0, rows):
37 | hor[x] = np.hstack(imgArray[x])
38 | ver = np.vstack(hor)
39 | else:
40 | for x in range(0, rows):
41 | if imgArray[x].shape[:2] == imgArray[0].shape[:2]:
42 | imgArray[x] = cv2.resize(imgArray[x], (0, 0), None, scale, scale)
43 | else:
44 | imgArray[x] = cv2.resize(imgArray[x], (imgArray[0].shape[1], imgArray[0].shape[0]), None,scale, scale)
45 | if len(imgArray[x].shape) == 2: imgArray[x] = cv2.cvtColor(imgArray[x], cv2.COLOR_GRAY2BGR)
46 | hor= np.hstack(imgArray)
47 | ver = hor
48 | return ver
49 |
50 | def getContours(img,imgContour):
51 | contours, hierarchy = cv2.findContours(img, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
52 | for cnt in contours:
53 | area = cv2.contourArea(cnt)
54 | areaMin = cv2.getTrackbarPos("Area", "Parameters")
55 | if area > areaMin:
56 | cv2.drawContours(imgContour, cnt, -1, (255, 0, 255), 7)
57 | peri = cv2.arcLength(cnt, True)
58 | approx = cv2.approxPolyDP(cnt, 0.02 * peri, True)
59 | print(len(approx))
60 | x , y , w, h = cv2.boundingRect(approx)
61 | cv2.rectangle(imgContour, (x , y ), (x + w , y + h ), (0, 255, 0), 5)
62 |
63 | cv2.putText(imgContour, "Points: " + str(len(approx)), (x + w + 20, y + 20), cv2.FONT_HERSHEY_COMPLEX, .7,
64 | (0, 255, 0), 2)
65 | cv2.putText(imgContour, "Area: " + str(int(area)), (x + w + 20, y + 45), cv2.FONT_HERSHEY_COMPLEX, 0.7,
66 | (0, 255, 0), 2)
67 |
68 | while True:
69 | success, img = cap.read()
70 | imgContour = img.copy()
71 | imgBlur = cv2.GaussianBlur(img, (7, 7), 1)
72 | imgGray = cv2.cvtColor(imgBlur, cv2.COLOR_BGR2GRAY)
73 | threshold1 = cv2.getTrackbarPos("Threshold1", "Parameters")
74 | threshold2 = cv2.getTrackbarPos("Threshold2", "Parameters")
75 | imgCanny = cv2.Canny(imgGray,threshold1,threshold2)
76 | kernel = np.ones((5, 5))
77 | imgDil = cv2.dilate(imgCanny, kernel, iterations=1)
78 | getContours(imgDil,imgContour)
79 | imgStack = stackImages(0.8,([img,imgCanny],
80 | [imgDil,imgContour]))
81 | cv2.imshow("Result", imgStack)
82 | if cv2.waitKey(1) & 0xFF == ord('q'):
83 | break
84 |
--------------------------------------------------------------------------------
/Intermediate/TextDetection/ReadMe.md:
--------------------------------------------------------------------------------
1 | Requires Installation
2 | https://tesseract-ocr.github.io/tessdoc/Home.html
3 |
--------------------------------------------------------------------------------
/Intermediate/TextDetection/TextMoreExamples.py:
--------------------------------------------------------------------------------
1 | import cv2
2 | import pytesseract
3 | import numpy as np
4 | from PIL import ImageGrab
5 | import time
6 |
7 |
8 | pytesseract.pytesseract.tesseract_cmd = 'C:\\Program Files\\Tesseract-OCR\\tesseract.exe'
9 | img = cv2.imread('1.png')
10 | img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
11 | pytesseract
12 | ##############################################
13 | ##### Image to String ######
14 | ##############################################
15 | # print(pytesseract.image_to_string(img))
16 |
17 | #############################################
18 | #### Detecting Characters ######
19 | #############################################
20 | hImg, wImg,_ = img.shape
21 | boxes = pytesseract.image_to_boxes(img)
22 | for b in boxes.splitlines():
23 | print(b)
24 | b = b.split(' ')
25 | print(b)
26 | x, y, w, h = int(b[1]), int(b[2]), int(b[3]), int(b[4])
27 | cv2.rectangle(img, (x,hImg- y), (w,hImg- h), (50, 50, 255), 2)
28 | cv2.putText(img,b[0],(x,hImg- y+25),cv2.FONT_HERSHEY_SIMPLEX,1,(50,50,255),2)
29 |
30 |
31 | ##############################################
32 | ##### Detecting Words ######
33 | ##############################################
34 | # #[ 0 1 2 3 4 5 6 7 8 9 10 11 ]
35 | # #['level', 'page_num', 'block_num', 'par_num', 'line_num', 'word_num', 'left', 'top', 'width', 'height', 'conf', 'text']
36 | # boxes = pytesseract.image_to_data(img)
37 | # for a,b in enumerate(boxes.splitlines()):
38 | # print(b)
39 | # if a!=0:
40 | # b = b.split()
41 | # if len(b)==12:
42 | # x,y,w,h = int(b[6]),int(b[7]),int(b[8]),int(b[9])
43 | # cv2.putText(img,b[11],(x,y-5),cv2.FONT_HERSHEY_SIMPLEX,1,(50,50,255),2)
44 | # cv2.rectangle(img, (x,y), (x+w, y+h), (50, 50, 255), 2)
45 |
46 |
47 | ##############################################
48 | ##### Detecting ONLY Digits ######
49 | ##############################################
50 | # hImg, wImg,_ = img.shape
51 | # conf = r'--oem 3 --psm 6 outputbase digits'
52 | # boxes = pytesseract.image_to_boxes(img,config=conf)
53 | # for b in boxes.splitlines():
54 | # print(b)
55 | # b = b.split(' ')
56 | # print(b)
57 | # x, y, w, h = int(b[1]), int(b[2]), int(b[3]), int(b[4])
58 | # cv2.rectangle(img, (x,hImg- y), (w,hImg- h), (50, 50, 255), 2)
59 | # cv2.putText(img,b[0],(x,hImg- y+25),cv2.FONT_HERSHEY_SIMPLEX,1,(50,50,255),2)
60 |
61 |
62 | ##############################################
63 | ##### Webcam and Screen Capture Example ######
64 | ##############################################
65 | # cap = cv2.VideoCapture(0)
66 | # cap.set(3,640)
67 | # cap.set(4,480)
68 | # def captureScreen(bbox=(300,300,1500,1000)):
69 | # capScr = np.array(ImageGrab.grab(bbox))
70 | # capScr = cv2.cvtColor(capScr, cv2.COLOR_RGB2BGR)
71 | # return capScr
72 | # while True:
73 | # timer = cv2.getTickCount()
74 | # _,img = cap.read()
75 | # #img = captureScreen()
76 | # #DETECTING CHARACTERES
77 | # hImg, wImg,_ = img.shape
78 | # boxes = pytesseract.image_to_boxes(img)
79 | # for b in boxes.splitlines():
80 | # #print(b)
81 | # b = b.split(' ')
82 | # #print(b)
83 | # x, y, w, h = int(b[1]), int(b[2]), int(b[3]), int(b[4])
84 | # cv2.rectangle(img, (x,hImg- y), (w,hImg- h), (50, 50, 255), 2)
85 | # cv2.putText(img,b[0],(x,hImg- y+25),cv2.FONT_HERSHEY_SIMPLEX,1,(50,50,255),2)
86 | # fps = cv2.getTickFrequency() / (cv2.getTickCount() - timer);
87 | # #cv2.putText(img, str(int(fps)), (75, 40), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (20,230,20), 2);
88 | # cv2.imshow("Result",img)
89 | # cv2.waitKey(1)
90 | #
91 | #
92 |
93 | cv2.imshow('img', img)
94 | cv2.waitKey(0)
95 |
--------------------------------------------------------------------------------
/Intermediate/TextDetection/TextSimple.py:
--------------------------------------------------------------------------------
1 | import cv2
2 | import pytesseract
3 | import numpy as np
4 | from PIL import ImageGrab
5 | import time
6 |
7 |
8 | pytesseract.pytesseract.tesseract_cmd = 'C:\\Program Files\\Tesseract-OCR\\tesseract.exe'
9 | img = cv2.imread('1.png')
10 | img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
11 |
12 | #############################################
13 | #### Detecting Characters ######
14 | #############################################
15 | hImg, wImg,_ = img.shape
16 | boxes = pytesseract.image_to_boxes(img)
17 | for b in boxes.splitlines():
18 | print(b)
19 | b = b.split(' ')
20 | print(b)
21 | x, y, w, h = int(b[1]), int(b[2]), int(b[3]), int(b[4])
22 | cv2.rectangle(img, (x,hImg- y), (w,hImg- h), (50, 50, 255), 2)
23 | cv2.putText(img,b[0],(x,hImg- y+25),cv2.FONT_HERSHEY_SIMPLEX,1,(50,50,255),2)
24 |
25 |
26 | cv2.imshow('img', img)
27 | cv2.waitKey(0)
28 |
--------------------------------------------------------------------------------
/Intermediate/TextDetection/oem.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/murtazahassan/OpenCV-Python-Tutorials-and-Projects/1b3123aac0b315f7e84e757bb380d494b0bbd048/Intermediate/TextDetection/oem.PNG
--------------------------------------------------------------------------------
/Intermediate/TextDetection/psm.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/murtazahassan/OpenCV-Python-Tutorials-and-Projects/1b3123aac0b315f7e84e757bb380d494b0bbd048/Intermediate/TextDetection/psm.PNG
--------------------------------------------------------------------------------
/Intermediate/objectTracking.py:
--------------------------------------------------------------------------------
1 | import cv2
2 |
3 | ############### Tracker Types #####################
4 |
5 | #tracker = cv2.TrackerBoosting_create()
6 | #tracker = cv2.TrackerMIL_create()
7 | #tracker = cv2.TrackerKCF_create()
8 | #tracker = cv2.TrackerTLD_create()
9 | #tracker = cv2.TrackerMedianFlow_create()
10 | #tracker = cv2.TrackerCSRT_create()
11 | tracker = cv2.TrackerMOSSE_create()
12 |
13 | ########################################################
14 |
15 |
16 | cap = cv2.VideoCapture(1)
17 | # TRACKER INITIALIZATION
18 | success, frame = cap.read()
19 | bbox = cv2.selectROI("Tracking",frame, False)
20 | tracker.init(frame, bbox)
21 |
22 |
23 | def drawBox(img,bbox):
24 | x, y, w, h = int(bbox[0]), int(bbox[1]), int(bbox[2]), int(bbox[3])
25 | cv2.rectangle(img, (x, y), ((x + w), (y + h)), (255, 0, 255), 3, 3 )
26 | cv2.putText(img, "Tracking", (100, 75), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 255, 0), 2)
27 |
28 |
29 | while True:
30 |
31 | timer = cv2.getTickCount()
32 | success, img = cap.read()
33 | success, bbox = tracker.update(img)
34 |
35 | if success:
36 | drawBox(img,bbox)
37 | else:
38 | cv2.putText(img, "Lost", (100, 75), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 255), 2)
39 |
40 | cv2.rectangle(img,(15,15),(200,90),(255,0,255),2)
41 | cv2.putText(img, "Fps:", (20, 40), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (255,0,255), 2);
42 | cv2.putText(img, "Status:", (20, 75), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (255, 0, 255), 2);
43 |
44 |
45 | fps = cv2.getTickFrequency() / (cv2.getTickCount() - timer);
46 | if fps>60: myColor = (20,230,20)
47 | elif fps>20: myColor = (230,20,20)
48 | else: myColor = (20,20,230)
49 | cv2.putText(img,str(int(fps)), (75, 40), cv2.FONT_HERSHEY_SIMPLEX, 0.7, myColor, 2);
50 |
51 | cv2.imshow("Tracking", img)
52 | if cv2.waitKey(1) & 0xff == ord('q'):
53 | break
54 |
55 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | # OPENCV PYTHON TUTORIALS FOR BEGINNERS
4 |
5 |
6 |
7 | # Single Video Course
8 |
9 | |Topic|Image|Video|Description|
10 | |:----:|:----:|:----:|:----:|
11 | | [Learn OpenCV in 3 Hours](https://github.com/murtazahassan/Learn-OpenCV-in-3-hours)|
|[Watch Now](https://youtu.be/WQeoO7MI0Bs) | Learn Opencv in 3 hours using Python. 3 Example Projects included. |
12 |
13 |
14 |
15 | # Basics
16 |
17 | |Topic|Image|Video|Description|
18 | |:----:|:----:|:----:|:----:|
19 | | [How to Install OpenCV Win/Mac](https://github.com/murtazahassan/OpenCV-Python-Tutorials-for-Beginners/edit/master/Basics/Intsall.py)|
|[Watch Now](https://www.youtube.com/watch?v=CJXIjApHYVs&list=PLMoSUbG1Q_r_sc0x7ndCsqdIkL7dwrmNF) | Pyhton and Opencv install and testing. |
20 | | [How to Read Image-Video-Webcam](https://github.com/murtazahassan/OpenCV-Python-Tutorials-for-Beginners/blob/master/Basics/Read_Image_Video_Webcam.py)|
|[Watch Now](https://www.youtube.com/watch?v=gH_kQZo-NSk&list=PLMoSUbG1Q_r_sc0x7ndCsqdIkL7dwrmNF&index=2) | Learn how to read images videos and webcam. |
21 | | [5 Must Know OpenCV Basic Functions](https://github.com/murtazahassan/OpenCV-Python-Tutorials-for-Beginners/blob/master/Basics/5_Must_Know_OpenCV_Functions.py)|
|[Watch Now](https://www.youtube.com/watch?v=7kHhz7nkpBw&list=PLMoSUbG1Q_r_sc0x7ndCsqdIkL7dwrmNF&index=3) | 5 Must know opencv functions for beginners. Gray Scale, Blur, Edge Detection, Dialation and Erosion. |
22 | | [How to Crop and Resize Images](https://github.com/murtazahassan/OpenCV-Python-Tutorials-for-Beginners/blob/master/Basics/Crop_Resize_Images.py)|
|[Watch Now](https://www.youtube.com/watch?v=GiVVCu7l34A&list=PLMoSUbG1Q_r_sc0x7ndCsqdIkL7dwrmNF&index=4) | How to crop and resize and iamge. Resize could be used to scale up or scale down an image where cropping can be used to get a part of the image. |
23 | | [How to Draw Shapes and Text](https://github.com/murtazahassan/OpenCV-Python-Tutorials-for-Beginners/blob/master/Basics/Draw_Shapes_Text.py)|
|[Watch Now](https://www.youtube.com/watch?v=wrfKPiy9za8&list=PLMoSUbG1Q_r_sc0x7ndCsqdIkL7dwrmNF&index=5) | Learn to create blank images along with how to draw Lines, rectangles, circles and custom text. |
24 | | [Joining Multiple Images to Display](https://github.com/murtazahassan/OpenCV-Python-Tutorials-for-Beginners/blob/master/Basics/Joining_Multiple_Images_To_Display.py)|
|[Watch Now](https://www.youtube.com/watch?v=Wv0PSs0dmVI&list=PLMoSUbG1Q_r_sc0x7ndCsqdIkL7dwrmNF&index=6) | Join multiple images together as one image for easy visualization of the workflow. Learn how to do it for smaller noumber of images and how it could be scaled up to have several iamges in the same image. |
25 | | [Warp Prespective/BirdView](https://github.com/murtazahassan/OpenCV-Python-Tutorials-for-Beginners/blob/master/Basics/Warp_Prespective.py)|
|[Watch Now](https://www.youtube.com/watch?v=Tm_7fGolVGE&list=PLMoSUbG1Q_r_sc0x7ndCsqdIkL7dwrmNF&index=7) | Learn how to creat a warp prespective of a selected area of an image using fixed points. |
26 | | [Detecting Clicks on Images](https://github.com/murtazahassan/OpenCV-Python-Tutorials-for-Beginners/blob/master/Basics/Detecting_Clicks_On_Images.py)|
|[Watch Now](https://www.youtube.com/watch?v=DaQoorJQSZQ&list=PLMoSUbG1Q_r_sc0x7ndCsqdIkL7dwrmNF&index=8) |How to detect clicks on images and how to use these points to create a warp prespective. |
27 | | [Screen Capture](https://github.com/murtazahassan/OpenCV-Python-Tutorials-for-Beginners/blob/master/Basics/screenCap.py)|
|[--]() |How to capture live feed of a screen that can be used with opencv functions. |
28 | |___________________|______________________________|__________| ____________________________
29 |
30 |
31 | # Intermidiate
32 |
33 |
34 |
35 | |Topic|Image|Video|Description|
36 | |:----:|:----:|:----:|:----:|
37 | | [Real Time Color Detection (Webcam)](https://github.com/murtazahassan/OpenCV-Python-Tutorials-for-Beginners/blob/master/Intermediate/RealTime_Color_Detection.py)|
|[Watch Now](https://www.youtube.com/watch?v=Tj4zEX_pdUg&list=PLMoSUbG1Q_r_sc0x7ndCsqdIkL7dwrmNF&index=9) | In this video we will learn how to detect any color in an image using the HSV space with the help of opencv Trackbars. We will also stack the images together to make the workflow smoother. |
38 | | [Real Time Shape Detection using Contours](https://github.com/murtazahassan/OpenCV-Python-Tutorials-for-Beginners/blob/master/Intermediate/RealTime_Shape_Detection_Contours.py)|
|[Watch Now](https://www.youtube.com/watch?v=Fchzk1lDt7Q&list=PLMoSUbG1Q_r_sc0x7ndCsqdIkL7dwrmNF&index=10) | In this video we will learn how to detect shapes of objects by finding their contours. Contours are basically outline that bound the shape or form of an object. So we will be detecting multiple shapes and how many corners points each shape has along with its area . |
39 | | [Tracking Objects](https://github.com/murtazahassan/OpenCV-Python-Tutorials-for-Beginners/blob/master/Intermediate/objectTracking.py)|
|[Watch Now](https://youtu.be/1FJWXOO1SRI) | In this video we are going to learn object tracking. We will use our mouse to select an object and track it using different methods that opencv has to offer. This is a fairly simple tutorial so it should be easy to follow. |
40 | | [Custom Obejct Detection using HaarCascade](https://github.com/murtazahassan/OpenCV-Python-Tutorials-for-Beginners/tree/master/Intermediate/Custom%20Object%20Detection)|
|[Watch Now](https://www.youtube.com/watch?v=dZ4itBvIjVY&list=PLMoSUbG1Q_r_sc0x7ndCsqdIkL7dwrmNF&index=11) | Object Detection using the Haar cascade. We will learn how to run pre-trained models and how to collect data for custom Objects. Later we will train using this data and create an Xml file for deploying |
41 | | [QRcode and BarCode Detection](https://github.com/murtazahassan/OpenCV-Python-Tutorials-for-Beginners/tree/master/Intermediate/QrCodeBarCode)|
|[Watch Now](https://www.youtube.com/watch?v=SrZuwM705yE&list=PLMoSUbG1Q_r_sc0x7ndCsqdIkL7dwrmNF&index=16&t=0s) | Learn how to detect QRCode and BarCode in an image using OpenCV |
42 | | [Text Detection OCR ](https://github.com/murtazahassan/OpenCV-Python-Tutorials-for-Beginners/tree/master/Intermediate/TextDetection)|
|[Watch Now](https://youtu.be/6DjFscX4I_c) | Learn how to detect Text in images and use it in openCV |
43 | |___________________|______________________________|__________| ____________________________
44 |
45 |
46 | # Projects
47 |
48 |
49 |
50 | |Topic|Image|Video|Description|
51 | |:----:|:----:|:----:|:----:|
52 | | [Gesture Controlled Robot Hand](https://github.com/murtazahassan/Robot-Arm-Gesture-Control)|
|[Watch Now](https://youtu.be/gmz7eOB-tCg) | This is a step by step guide on how to build a Robot Arm / Hand that can be controlled with gestures. |
53 | | [Object Tracking with Drone](https://github.com/murtazahassan/Tello-Object-Tracking)|
|[Watch Now](https://youtu.be/vDOkUHNdmKs) | In this video we will learn how to program a drone to move around using python. We will also learn how to get the camera feed from this drone and run OpenCV functions on it . As an example we will detect an object and make the drone follow it around. |
54 | | [Document Scanner](https://github.com/murtazahassan/Document-Scanner)|
|[Watch Now](https://www.youtube.com/watch?v=ON_JubFRw8M&feature=youtu.be) | In this video we are going to create a simple document scanner using opencv. We will learn how to run this in real time and how we can save these images by pressing just a button on the keyboard. |
55 | | [Optical Mark Recognition](https://github.com/murtazahassan/Optical-Mark-Recognition-OPENCV)|
|[Watch Now](https://youtu.be/0IqCOPlGBTs) | In this video we are going to learn how to create Optical Mark recognition algorithm in python using opencv . We will write the code from scratch going step by step while discussing the details of each line. We will use the webcam to automatically find the grades of MCQs. |
56 | | [Object Measurement](https://github.com/murtazahassan/Real-Time-Object-Measurement-)|
|[Watch Now](https://youtu.be/aHW3Hl0XX1U) | Learn how to perform object measurement using OpenCV and Python. We will use an A4 paper as our guide and find the width and height of objects placed in this region. |
57 | | [Face Recognition](https://github.com/murtazahassan/Face-Recognition)|
|[Watch Now](https://youtu.be/sz25xxF_AVE) | Learn how to perform Facial recognition with high accuracy. We will first briefly go through the theory and learn the basic implementation. Then we will create an Attendance project that will use webcam to detect faces and record the attendance live in an excel sheet. |
58 | | [Angle Finder](https://github.com/murtazahassan/Angle-Finder)|
|[Watch Now](https://www.youtube.com/watch?v=NmRt9kdUefk&list=PLMoSUbG1Q_r8vFXoAZPKyj-WLcD2aGoNZ) | Learn how to create an angle finder project. We will first define two lines using mouse clicks and then find the angle between theses lines using simple mathematics. |
59 | | [Drone Face Tracking](https://github.com/murtazahassan/Drone-Face-Tracking)|
|[Watch Now](https://www.youtube.com/playlist?list=PLMoSUbG1Q_r8ib2U4AbC_mPTsa-u9HoP_) | Learn how to program a drone to move around using python. We will also learn how to get the camera feed from this drone and run OpenCV functions on it . As an example we will detect a face and make the drone follow it around. |
60 |
61 |
62 |
63 | # Notes
64 |
65 |
66 | |Index|Comment|
67 | |:---|:---|
68 | |1.|[Recommended IDE: PyCharm Community edition](https://www.jetbrains.com/pycharm/download/)|
69 |
--------------------------------------------------------------------------------
/Resources/chess.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/murtazahassan/OpenCV-Python-Tutorials-and-Projects/1b3123aac0b315f7e84e757bb380d494b0bbd048/Resources/chess.jpg
--------------------------------------------------------------------------------
/Resources/lena.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/murtazahassan/OpenCV-Python-Tutorials-and-Projects/1b3123aac0b315f7e84e757bb380d494b0bbd048/Resources/lena.png
--------------------------------------------------------------------------------
/Resources/readme.md:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/Resources/shapes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/murtazahassan/OpenCV-Python-Tutorials-and-Projects/1b3123aac0b315f7e84e757bb380d494b0bbd048/Resources/shapes.png
--------------------------------------------------------------------------------
/Resources/testVideo.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/murtazahassan/OpenCV-Python-Tutorials-and-Projects/1b3123aac0b315f7e84e757bb380d494b0bbd048/Resources/testVideo.mp4
--------------------------------------------------------------------------------
/thumbnails/0.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/murtazahassan/OpenCV-Python-Tutorials-and-Projects/1b3123aac0b315f7e84e757bb380d494b0bbd048/thumbnails/0.jpg
--------------------------------------------------------------------------------
/thumbnails/1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/murtazahassan/OpenCV-Python-Tutorials-and-Projects/1b3123aac0b315f7e84e757bb380d494b0bbd048/thumbnails/1.jpg
--------------------------------------------------------------------------------
/thumbnails/10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/murtazahassan/OpenCV-Python-Tutorials-and-Projects/1b3123aac0b315f7e84e757bb380d494b0bbd048/thumbnails/10.png
--------------------------------------------------------------------------------
/thumbnails/11.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/murtazahassan/OpenCV-Python-Tutorials-and-Projects/1b3123aac0b315f7e84e757bb380d494b0bbd048/thumbnails/11.PNG
--------------------------------------------------------------------------------
/thumbnails/2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/murtazahassan/OpenCV-Python-Tutorials-and-Projects/1b3123aac0b315f7e84e757bb380d494b0bbd048/thumbnails/2.jpg
--------------------------------------------------------------------------------
/thumbnails/3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/murtazahassan/OpenCV-Python-Tutorials-and-Projects/1b3123aac0b315f7e84e757bb380d494b0bbd048/thumbnails/3.jpg
--------------------------------------------------------------------------------
/thumbnails/4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/murtazahassan/OpenCV-Python-Tutorials-and-Projects/1b3123aac0b315f7e84e757bb380d494b0bbd048/thumbnails/4.jpg
--------------------------------------------------------------------------------
/thumbnails/5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/murtazahassan/OpenCV-Python-Tutorials-and-Projects/1b3123aac0b315f7e84e757bb380d494b0bbd048/thumbnails/5.jpg
--------------------------------------------------------------------------------
/thumbnails/6.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/murtazahassan/OpenCV-Python-Tutorials-and-Projects/1b3123aac0b315f7e84e757bb380d494b0bbd048/thumbnails/6.jpg
--------------------------------------------------------------------------------
/thumbnails/7.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/murtazahassan/OpenCV-Python-Tutorials-and-Projects/1b3123aac0b315f7e84e757bb380d494b0bbd048/thumbnails/7.jpg
--------------------------------------------------------------------------------
/thumbnails/8.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/murtazahassan/OpenCV-Python-Tutorials-and-Projects/1b3123aac0b315f7e84e757bb380d494b0bbd048/thumbnails/8.jpg
--------------------------------------------------------------------------------
/thumbnails/9.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/murtazahassan/OpenCV-Python-Tutorials-and-Projects/1b3123aac0b315f7e84e757bb380d494b0bbd048/thumbnails/9.jpg
--------------------------------------------------------------------------------
/thumbnails/QrCode.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/murtazahassan/OpenCV-Python-Tutorials-and-Projects/1b3123aac0b315f7e84e757bb380d494b0bbd048/thumbnails/QrCode.jpg
--------------------------------------------------------------------------------
/thumbnails/ScreenCap.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/murtazahassan/OpenCV-Python-Tutorials-and-Projects/1b3123aac0b315f7e84e757bb380d494b0bbd048/thumbnails/ScreenCap.gif
--------------------------------------------------------------------------------
/thumbnails/TextDetection.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/murtazahassan/OpenCV-Python-Tutorials-and-Projects/1b3123aac0b315f7e84e757bb380d494b0bbd048/thumbnails/TextDetection.gif
--------------------------------------------------------------------------------