for r, (x1, y1, x2, y2) in result: cv2.rectangle(image, (y1, x1), (y2, x2), colorMap[r], 1) path, bf = os.path.split(filename) cv2.imwrite(os.path.join(output, bf), image) if __name__ == '__main__': parser = ArgParserWithDefaultHelp(description='Visualising tool for pattern matcher and classifier') parser.add_argument('folder', help='Folder, that contains folders with frames') parser.add_argument('patterns', help='Folder with patterns') parser.add_argument('classifier', help='Classifier') parser.add_argument('output', help='Output folder for processed images') parser.add_argument('-j', '--jobs', default=-1, type=int, help='Processes amount for parallel processing') args = parser.parse_args() classifier = load(args.classifier) FileHelper.create_or_clear_dir(args.output) wfc = WindowedFeatureClassifier(classifier) pm = PatternMatcher() pm.load_patterns_folder(args.patterns) tasks = [] for dir, filename in FileHelper.read_images_in_dir_recursively(args.folder): tasks.append(delayed(process_image)(wfc, pm, os.path.join(dir, filename), args.output)) p = Parallel(n_jobs=args.jobs, verbose=100) p(tasks)
import os from image.pattern_matcher import PatternMatcher from misc.file_helper import FileHelper if __name__ == "__main__": import sys # for dir, filename in FileHelper.read_images_in_dir_recursively('frames_tagged_291013_goodbad'): # pm = PatternMatcher() # pattern_dir = 'frames_tagged_291013_goodbad_ht/' + '/'.join((dir.split('/')[1:])) # bfn, ext = os.path.splitext(filename) # # pm.load_patterns([os.path.join(pattern_dir, bfn+'_ht'+ext)], convert2GS=True) # pm.match(os.path.join(dir, filename), generateHist=True) pm = PatternMatcher() # pm.load_patterns([sys.argv[1]], convert2GS=True) pm.load_patterns_folder(sys.argv[1]) if os.path.isdir(sys.argv[2]): for dir, filename in FileHelper.read_images_in_dir_recursively(sys.argv[2]): print os.path.join(dir, filename) pm.match(os.path.join(dir, filename), visualise=True) else: pm.match(sys.argv[2], visualise=True)