diff --git a/fourcell/apply_image.py b/fourcell/apply_image.py index 6fb8e2d..313edb2 100644 --- a/fourcell/apply_image.py +++ b/fourcell/apply_image.py @@ -183,7 +183,7 @@ def apply_image (args) : ##print(f'Wrote {args.destination}') def main () : - parser = argparse.ArgumentParser() + parser = argparse.ArgumentParser(description='Create a printable rasterized image that can be hole punched and animated.') parser.add_argument('name', help='Name of project') parser.add_argument('destination', help='File to output image to') parser.add_argument('template', help='Template file to use') diff --git a/fourcell/calibrate.py b/fourcell/calibrate.py index 6876fc1..0d52364 100644 --- a/fourcell/calibrate.py +++ b/fourcell/calibrate.py @@ -181,7 +181,7 @@ def scale (args) : def main () : - parser = argparse.ArgumentParser() + parser = argparse.ArgumentParser(description='Create a calibration file, apply to a scanned page, or scale image to desired DPI.') parser.add_argument('action', help='The action to perform', choices=ACTIONS) parser.add_argument('--dpi', '-d', help='DPI to generate', required=False, type=int) parser.add_argument('--input', '-i', help='Input file', required=False) diff --git a/fourcell/guide.py b/fourcell/guide.py index 82f7402..9e681bc 100644 --- a/fourcell/guide.py +++ b/fourcell/guide.py @@ -63,7 +63,7 @@ def guide (args) : cv2.imwrite(args.output, img) def main () : - parser = argparse.ArgumentParser() + parser = argparse.ArgumentParser(description='Generate a raster image guide image for centering the camera.') parser.add_argument('output', help='Output file') parser.add_argument('--dpi', '-d', help='DPI', required=False, type=int, default=600) parser.add_argument('--dimensions', '-D', help='Dimensions of image', required=True, type=str) diff --git a/fourcell/normalize.py b/fourcell/normalize.py index 2d0407f..a19d1d2 100644 --- a/fourcell/normalize.py +++ b/fourcell/normalize.py @@ -1,3 +1,4 @@ +import argparse import sys import cv2 import numpy as np @@ -293,22 +294,24 @@ def normalize_image(blank, rotated, offset, tl) : # # NORMALIZE # +# The purpose of this script is to normalize scanned hole punch images to a standard +# size, with standard padding around the holes and oriented straight up and down. +# Useful for converting scanned plotter-drawn pages into 4 frame sheets and for +# generating images to print. +# -if len(sys.argv) < 2: - print('Please provide path of scan to normalize') - exit(1) +parser = argparse.ArgumentParser(description='Normalize a scanned hole punch image.') +parser.add_argument('input', type=str, help='Scan to normalize') +parser.add_argument('output', type=str, help='Normalized file to output') +args = parser.parse_args() -if len(sys.argv) < 3: - print('Please provide path to output file') - exit(2) - -scanImage = sys.argv[-2] +scanImage = args.input +normalImage = args.output if not exists(scanImage) : print('Scan provided does not exist') - exit(5) + exit(1) -normalImage = sys.argv[-1] pageDim = (11, 8.5) pageRatio = pageDim[1] / pageDim[0] diff --git a/fourcell/template.py b/fourcell/template.py index e0dc2f2..c8385f2 100644 --- a/fourcell/template.py +++ b/fourcell/template.py @@ -1,3 +1,4 @@ +import argparse import sys import cv2 import numpy as np @@ -16,14 +17,16 @@ order = [ 0, 2, 3, 5, 4, 1 ] matchMethods = [cv2.TM_CCOEFF, cv2.TM_CCOEFF_NORMED, cv2.TM_CCORR, cv2.TM_CCORR_NORMED, cv2.TM_SQDIFF, cv2.TM_SQDIFF_NORMED] # -# CALIBRATE +# TEMPLATE # -if len(sys.argv) < 2: - print('Please provide path of normalized scan to build template from to') - exit(1) +parser = argparse.ArgumentParser(description='Create a template from normalized scan file.') +parser.add_argument('normalized', type=str, help='Normalized scan to build template from.') +parser.add_argument('registration', type=str, nargs='?', help='Registration mark to use.'); +#parser.add_argument('output', type=str, help='Normalized file to output', default=None) +args = parser.parse_args() -normalImage = sys.argv[1] +normalImage = args.normalized if not exists(normalImage) : print('Normalized scan does not exist, please provide one that does') @@ -35,12 +38,12 @@ if not exists(normalText) : print('Corresponding normalized scan text does not exist, please generate one') exit(3) -if len(sys.argv) > 2 : - if not exists(sys.argv[2]) : - registrationMark = cv2.imread(sys.argv[2]) - print(f'Registration mark {sys.argv[2]} does not exist') +if args.registraion is not None : + if not exists(args.registraion) : + registrationMark = cv2.imread(args.registraion) + print(f'Registration mark {args.registraion} does not exist') exit(4) - print(f'Using registration mark {sys.argv[2]}') + print(f'Using registration mark {args.registraion}') def get_dpi (width) : if width == 2550 : @@ -59,8 +62,10 @@ height, width = img.shape[:2] orientation = height > width dpi = get_dpi(width) -try: registrationMark -except NameError: registrationMark = None +try: + registrationMark +except NameError: + registrationMark = None if registrationMark is None : registrationMark = cv2.imread(f'./registrationMark/{dpi}.png', 0) w, h = registrationMark.shape[:2]