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)