def main(): blnKNNTrainingSuccessful = DetectChars.loadKNNDataAndTrainKNN() # treniranje KNN-a if blnKNNTrainingSuccessful == False: # Ukoliko nije uspesno izvrseno treniranje vraca se poruka o tome print ("\nerror: KNN traning was not successful\n") return imgOriginalScene = cv2.imread("6.png") # otvaranje slike if imgOriginalScene is None: # ukoliko slika nije uspesno otvorena vraca se poruka o tome print("\nerror: image not read from file \n\n") os.system("pause") return possiblePlates = DetectPlates.detectPlatesInScene(imgOriginalScene) # detektovanje samih tablica possiblePlates = DetectChars.detectCharsInPlates(possiblePlates) # detektovanje karaktera na tablicama cv2.imshow("Original image", imgOriginalScene) if len(possiblePlates) == 0: print("\nno license plates were detected\n") else: possiblePlates.sort(key = lambda possiblePlate: len(possiblePlate.strChars), reverse = True) licPlate = possiblePlates[0] if len(licPlate.strChars) == 0: print("\nno characters were detected\n\n") return # end if Draw.drawRedRectangleAroundPlate(imgOriginalScene, licPlate) print("\nlicense plate read from image = " + licPlate.strChars + "\n") print("----------------------------------------") Draw.writeLicensePlateCharsOnImage(imgOriginalScene, licPlate) cv2.imshow("Result", imgOriginalScene) cv2.imwrite("result.png", imgOriginalScene) cv2.waitKey(0) return