From 6e26c02f04f8b6ec34d2ae9764450dd118643f03 Mon Sep 17 00:00:00 2001 From: Christoph Rackwitz Date: Wed, 5 Aug 2020 01:58:29 +0200 Subject: [PATCH] scipy interpolation default, argparse for main script (try --help), picker.py for convenience --- README.md | 2 +- metrology-demo.py | 182 ++++++++++++++++++++++++++++++++-------------- picker.py | 85 ++++++++++++++++++++++ plot.png | Bin 53434 -> 53119 bytes 4 files changed, 213 insertions(+), 56 deletions(-) create mode 100644 picker.py diff --git a/README.md b/README.md index eecb8bd..6e3ef9a 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # metrology demo -[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3972262.svg)](https://doi.org/10.5281/zenodo.3972262) +[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3972444.svg)](https://doi.org/10.5281/zenodo.3972444) this is a "quick and dirty" concept sketch. diff --git a/metrology-demo.py b/metrology-demo.py index d3fad92..8348b6d 100644 --- a/metrology-demo.py +++ b/metrology-demo.py @@ -4,10 +4,16 @@ # use only for war purposes and sarcasm import sys +import argparse import numpy as np import cv2 as cv -import scipy.interpolate # interp2d -import scipy.ndimage # gaussian_filter1d + +import scipy.ndimage +# contains lots of useful stuff that's also in OpenCV +# https://scipy.github.io/devdocs/ndimage.html + + +### "business logic" ################################################### def build_transform(p0, p1, stride=None, nsamples=None): "builds an affine transform with x+ along defined line" @@ -51,10 +57,11 @@ def build_transform(p0, p1, stride=None, nsamples=None): def sample_opencv(im, M, nsamples): # use transform to get samples - samples = cv.warpAffine(im, M=M, dsize=(nsamples, 1), flags=cv.WARP_INVERSE_MAP | cv.INTER_CUBIC) + # available: INTER_{NEAREST,LINEAR,AREA,CUBIC,LANCOS4) + samples = cv.warpAffine(im, M=M, dsize=(nsamples, 1), flags=cv.WARP_INVERSE_MAP | cv.INTER_CUBIC ) - # data is a row vector - samples = samples[0] + # flatten row vector + samples.shape = (-1,) # INTER_CUBIC seems to break down beyond 1/32 sampling (discretizes). # there might be fixed point algorithms at work @@ -62,80 +69,136 @@ def sample_opencv(im, M, nsamples): return samples def sample_scipy(im, M, nsamples): - # https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.interp2d.html + # coordinates to this function are (i,j) = (y,x) + # I could permute first and second rows+columns of M, or transpose input+output + Mp = M.copy() + Mp[(0,1), :] = Mp[(1,0), :] # permute rows + Mp[:, (0,1)] = Mp[:, (1,0)] # permute columns - coords = np.vstack([np.arange(nsamples), np.zeros(nsamples), np.ones(nsamples)]) + samples = scipy.ndimage.interpolation.affine_transform( + input=im, matrix=Mp, output_shape=(1, nsamples), + order=2, # 1: linear (C0, f' is piecewise constant), 2: C1 (f' is piecewise linear), 3: C2... https://en.wikipedia.org/wiki/Smoothness + mode='nearest' # border handling + ) - coords_mapped = M.astype(np.float32) @ coords # @ = np.dot + # flatten row vector + samples.shape = (-1,) - # FIXME: interp2d() is an expensive operation if the image is large - # maybe crop to bounding box of line (bbox of coords_mapped)? - sampler = scipy.interpolate.interp2d(x=np.arange(imw), y=np.arange(imh), z=im, kind='cubic') + return samples - sampler = np.vectorize(sampler) # doesn't cake coordinate pairs as is, vectorize() handles that (!= execution speed!) - samples = sampler(*coords_mapped) # fairly fast compared to building the sampler (interp2d) +### command line parsing utility functions ############################# + +def parse_linestr(arg): + pieces = arg.split(",") + pieces = [float(el) for el in pieces] + x0,y0,x1,y1 = pieces + return ((x0,y0), (x1,y1)) + +def parse_bool(arg): + if isinstance(arg, bool): + return arg + if arg.lower() in ('yes', 'true', 't', 'y', '1'): + return True + elif arg.lower() in ('no', 'false', 'f', 'n', '0'): + return False + else: + raise argparse.ArgumentTypeError(f'Boolean value expected, got {arg!r} instead') - return samples +def parse_float(arg): + import ast + if '/' in arg: + num, denom = arg.split('/', 1) + num = ast.literal_eval(num) + denom = ast.literal_eval(denom) + result = num / denom -if __name__ == '__main__': - do_display = True # see below - do_invert = True + else: + result = ast.literal_eval(arg) - # to remove pixel noise - smoothing_sigma = 2 # in pixels + return result - # define a line segment to sample along - p0, p1 = (1320, 2500), (1320, 2100) - stride = 1/4 # sample stride in pixels +### main... ############################################################ - # the picture to work with - if len(sys.argv) >= 2: - imfname = sys.argv[1] - else: - imfname = "dish-1.jpg" +if __name__ == '__main__': + # command line argument parsing + # change defaults here + + parser = argparse.ArgumentParser() + parser.add_argument("--picture", dest="fname", metavar="PATH", type=str, default="dish-1.jpg", + help="path to picture file") + parser.add_argument("--invert", type=parse_bool, default=True, metavar="BOOL", + help="invert picture (cosmetic; distance between gradient extrema is absolute)") + parser.add_argument("--line", type=parse_linestr, default=((1320, 2500), (1320, 2100)), metavar="X0,Y0,X1,Y1", + help="line to sample on") + parser.add_argument("--stride", type=parse_float, default=1/4, metavar="PX", + help="stride in pixels to sample along line, fractions supported") + parser.add_argument("--method", type=lambda s: s.lower(), default="scipy", + help="sampling methods: SciPy (slower, smoother, default), OpenCV (faster, less smooth)") + parser.add_argument("--sigma", type=float, default=2.0, metavar="PX", + help="sigma for gaussian lowpass on sampled signal, before gradient is calculated") + parser.add_argument("--verbose", type=parse_bool, default=True, metavar="BOOL", + help="chatty or not") + parser.add_argument("--display", type=parse_bool, default=True, metavar="BOOL", + help="draw some plots") + parser.add_argument("--saveplot", type=str, default="plot.png", metavar="PATH", + help="save a picture (use '--saveplot=' to disable)") + args = parser.parse_args() ########## here be dragons ########## - decimals = max(0, int(np.ceil(-np.log10(stride)))) + if args.stride > 1: + print(f"WARNING: stride should be <= 1, is {args.stride}") + + stride_decimals = max(0, int(np.ceil(-np.log10(args.stride)))) - print("loading picture...", end=" ", flush=True) - im = cv.imread(imfname, cv.IMREAD_GRAYSCALE) + if args.verbose: print("loading picture...", end=" ", flush=True) + im = cv.imread(args.fname, cv.IMREAD_GRAYSCALE) imh, imw = im.shape[:2] - if do_invert: + if args.invert: im = 255-im # invert im = im.astype(np.float32)# * np.float32(1/255) - print("done") + if args.verbose: print("done") # build transform - nsamples, M = build_transform(p0, p1, stride=stride) + p0, p1 = args.line + nsamples, M = build_transform(p0, p1, stride=args.stride) - print(f"taking {nsamples} samples along line {p0} -> {p1}...", end=" ", flush=True) + if args.verbose: print(f"taking {nsamples} samples along line {p0} -> {p1}...", end=" ", flush=True) # pick one - samples = sample_opencv(im, M, nsamples) # does "normal" cubic (4 support points, continuous first derivative) - #samples = sample_scipy(im, M, nsamples) # does some fancy cubic with continuous higher derivatives + if args.method == 'opencv': + samples = sample_opencv(im, M, nsamples) # does "normal" cubic (4x4 support points, continuous first derivative) + elif args.method == 'scipy': + samples = sample_scipy(im, M, nsamples) # does some fancy "cubic" with continuous higher derivatives + else: + assert False, "method needs to be opencv or scipy" - print("sampling done") + if args.verbose: print("sampling done") # smoothing to remove noise - if smoothing_sigma > 0: - samples = scipy.ndimage.gaussian_filter1d(samples, sigma=smoothing_sigma / stride) + if args.sigma > 0: + if args.verbose: print(f"lowpass filtering with sigma = {args.sigma} px...", end=" ", flush=True) + samples = scipy.ndimage.gaussian_filter1d(samples, sigma=args.sigma / args.stride) + if args.verbose: print("done") # off-by-half in position because for values [0,1,1,0] this returns [+1,0,-1] - gradient = np.diff(samples) / stride + gradient = np.diff(samples) / args.stride i_falling = np.argmin(gradient) # in samples i_rising = np.argmax(gradient) # in samples - distance = (i_rising - i_falling) * stride # in pixels + distance = np.abs(i_rising - i_falling) * args.stride # in pixels - print(f"distance: {distance:.{decimals}f} pixels") + if args.verbose: + print(f"distance: {distance:.{stride_decimals}f} pixels") + else: + print(distance) # this was the result. algorithm is done. # now follows displaying code - if do_display: + if args.display or args.saveplot: gradient *= 255 / np.abs(gradient).max() # plot signal @@ -171,27 +234,36 @@ def sample_scipy(im, M, nsamples): cv.line(canvas, (px_rising, 0), (px_rising, 400*2), color=(255,0,0)) # some text to describe the picture - cv.putText(canvas, f"sampling {p0} -> {p1}", + cv.putText(canvas, f"{nsamples*args.stride:.0f} px, {p0} -> {p1}", (10, 350), cv.FONT_HERSHEY_SIMPLEX, 0.75, (255,255,255), thickness=1, lineType=cv.LINE_AA) - cv.putText(canvas, f"stride {stride} px, {nsamples} samples, sigma {smoothing_sigma}", + cv.putText(canvas, f"stride {args.stride} px, {nsamples} samples, sigma {args.sigma}", (10, 350+35), cv.FONT_HERSHEY_SIMPLEX, 0.75, (255,255,255), thickness=1, lineType=cv.LINE_AA) - cv.putText(canvas, f"distance: {distance:.{decimals}f} px", + cv.putText(canvas, f"distance: {distance:.{stride_decimals}f} px", (10, 350+70), cv.FONT_HERSHEY_SIMPLEX, 0.75, (255,255,255), thickness=1, lineType=cv.LINE_AA) # save for posterity - cv.imwrite("plot.png", canvas) + if args.saveplot: + cv.imwrite(args.saveplot, canvas) + + if args.display: + cv.imshow("plot", canvas) + + if args.verbose: + print("press Ctrl+C in the terminal, or press any key while the imshow() window is focused") + + while True: + keycode = cv.waitKey(100) + + if keycode == -1: + continue - cv.imshow("plot", canvas) + # some key... - print("press Ctrl+C in the terminal, or press any key while the imshow() window is focused") + if args.verbose: + print(f"keycode: {keycode}") - while True: - keycode = cv.waitKey(100) - if keycode == -1: - continue - else: - print(f"keycode: {keycode}") + cv.destroyAllWindows() break diff --git a/picker.py b/picker.py new file mode 100644 index 0000000..93d8daa --- /dev/null +++ b/picker.py @@ -0,0 +1,85 @@ +#!/usr/bin/env python3 + +# written in 2020 by Christoph Rackwitz +# use only for war purposes and sarcasm + +import sys +import time +import numpy as np +import cv2 as cv + +if __name__ == '__main__': + windowname = "coordinate picker" + + print("move your mouse, click and drag") + + im = cv.imread(sys.argv[1], cv.IMREAD_GRAYSCALE) + imh,imw = im.shape[:2] + im = cv.cvtColor(im, cv.COLOR_GRAY2BGR) # need it gray because I'm gonna draw on it in color + + p0 = p1 = None + + invalid = True + + def invalidate(): + global invalid + invalid = True + + def redraw(): + global invalid + if p0 and p1: + canvas = im.copy() + cv.line(canvas, p0, p1, color=(0,0,255), thickness=2, lineType=cv.LINE_AA) + else: + canvas = im + cv.imshow(windowname, canvas) + invalid = False + #print("redrawn at", time.perf_counter()) + + def onmouse(event, x, y, flags, userdata): + global p0, p1 + + print(f"{(x,y)}", end="\r", flush=True) + + if flags == cv.EVENT_LBUTTONDOWN: + p1 = (x,y) + #print("p1 =", p1, end="\r", flush=True) + invalidate() + + if event == cv.EVENT_LBUTTONDOWN: + p0 = (x,y) + #print("p0 =", p0) + invalidate() + + if event == cv.EVENT_LBUTTONUP: + p1 = (x,y) + invalidate() + + x0,y0 = p0 + x1,y1 = p1 + print(f"{p0} -> {p1} --line={x0},{y0},{x1},{y1}") + + # NORMAL for resizability + # OPENGL because it has linear resampling at least (default on windows is nearest neighbor...) + cv.namedWindow(windowname, cv.WINDOW_NORMAL | cv.WINDOW_OPENGL) + + # some nice default size + scale = np.sqrt(1e6 / (imw*imh)) + cv.resizeWindow(windowname, int(imw * scale), int(imh * scale)) + + cv.setMouseCallback(windowname, onmouse) + + while True: + if invalid: + redraw() + + key = cv.waitKey(10) # not too fast, not too slow + if key == -1: continue + + if key in (13, 27): + break + + + cv.destroyAllWindows() + print("\ndone") + diff --git a/plot.png b/plot.png index bbb02b25224a7f2d120ca2e8cb10a08694695ef3..1475e45c33e95b3d09808f027ca49eae4cf0408f 100644 GIT binary patch literal 53119 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