From 5faa3ec8731cf363786e6c1b9b61d7b759c677db Mon Sep 17 00:00:00 2001 From: Josh Chien Date: Wed, 25 Sep 2019 20:39:47 +0800 Subject: [PATCH] Merge pull request #2250 from dogod621:master * Add pattern generator tool * Fix help error * Update readme --- .../misc/pattern_generator/MarkerPrinter.py | 1288 +++++++++++++++++ .../pattern_generator/MarkerPrinterGUI.py | 565 ++++++++ .../aruco/misc/pattern_generator/README.md | 68 + .../pattern_generator/arucoDictBytesList.npz | Bin 0 -> 137389 bytes .../doc/images/MarkerPrinterGUI.jpg | Bin 0 -> 157076 bytes .../tutorials/table_of_content_aruco.markdown | 5 + 6 files changed, 1926 insertions(+) create mode 100644 modules/aruco/misc/pattern_generator/MarkerPrinter.py create mode 100644 modules/aruco/misc/pattern_generator/MarkerPrinterGUI.py create mode 100644 modules/aruco/misc/pattern_generator/README.md create mode 100644 modules/aruco/misc/pattern_generator/arucoDictBytesList.npz create mode 100644 modules/aruco/misc/pattern_generator/doc/images/MarkerPrinterGUI.jpg diff --git a/modules/aruco/misc/pattern_generator/MarkerPrinter.py b/modules/aruco/misc/pattern_generator/MarkerPrinter.py new file mode 100644 index 000000000..61314f7a1 --- /dev/null +++ b/modules/aruco/misc/pattern_generator/MarkerPrinter.py @@ -0,0 +1,1288 @@ +#!/usr/bin/env python3 + +# SPDX-License-Identifier: BSD-3-Clause +# +# Copyright (c) 2019, Josh Chien. All rights reserved. + +from argparse import ArgumentParser +import numpy as np +from PIL import Image +import io +import warnings +import os +import cairo +from cairosvg import svg2png +import math +import tempfile + +def SaveArucoDictBytesList(filePath = "arucoDictBytesList.npz"): + import numpy as np + + # cv2 is optional dependency + try: + import cv2 + from cv2 import aruco + + # Name, Flag + dictInfo = \ + [ + ("DICT_4X4_1000", aruco.DICT_4X4_1000), + ("DICT_5X5_1000", aruco.DICT_5X5_1000), + ("DICT_6X6_1000", aruco.DICT_6X6_1000), + ("DICT_7X7_1000", aruco.DICT_7X7_1000), + ("DICT_ARUCO_ORIGINAL", aruco.DICT_ARUCO_ORIGINAL), + ("DICT_APRILTAG_16h5", aruco.DICT_APRILTAG_16h5), + ("DICT_APRILTAG_25h9", aruco.DICT_APRILTAG_25h9), + ("DICT_APRILTAG_36h10", aruco.DICT_APRILTAG_36h10), + ("DICT_APRILTAG_36h11", aruco.DICT_APRILTAG_36h11), + ] + + arucoDictBytesList = {} + for name, flag in dictInfo: + arucoDict = aruco.Dictionary_get(flag) + arucoDictBytesList[name] = arucoDict.bytesList + + np.savez_compressed(filePath, **arucoDictBytesList) + return arucoDictBytesList + + except Exception as e: + warnings.warn(str(e)) + return None + + return None + +class MarkerPrinter: + + debugMode = None # "LINE" "BLOCK" + + # Static Vars + # SVG https://oreillymedia.github.io/Using_SVG/guide/units.html + # for PDF and SVG, 1 pixel = 1/72 inch, 1 cm = 1/2.54 inch, 1pixl = 2.54/72 cm, 1cm = 72/2.54 pixels + ptPerMeter = 72 / 2.54 * 100 + + surface = { + ".SVG": cairo.SVGSurface, + ".PDF": cairo.PDFSurface, + ".PS": cairo.PSSurface } + + if (os.path.isfile("arucoDictBytesList.npz")): + arucoDictBytesList = np.load("arucoDictBytesList.npz") + else: + warnings.warn("Missing build-in arucoDictBytesList.npz, generate it again") + arucoDictBytesList = SaveArucoDictBytesList(filePath = "arucoDictBytesList.npz") + + arucoDictMarkerSize = \ + { + "DICT_4X4_1000": 4, + "DICT_5X5_1000": 5, + "DICT_6X6_1000": 6, + "DICT_7X7_1000": 7, + "DICT_ARUCO_ORIGINAL": 5, + "DICT_APRILTAG_16h5": 4, + "DICT_APRILTAG_25h9": 5, + "DICT_APRILTAG_36h10": 6, + "DICT_APRILTAG_36h11": 6, + } + + def ArucoBits(dictionary, markerID): + bytesList = MarkerPrinter.arucoDictBytesList[dictionary][markerID].ravel() + markerSize = MarkerPrinter.arucoDictMarkerSize[dictionary] + + arucoBits = np.zeros(shape = (markerSize, markerSize), dtype = bool) + base2List = np.array( [128, 64, 32, 16, 8, 4, 2, 1], dtype = np.uint8) + currentByteIdx = 0 + currentByte = bytesList[currentByteIdx] + currentBit = 0 + for row in range(markerSize): + for col in range(markerSize): + if(currentByte >= base2List[currentBit]): + arucoBits[row, col] = True + currentByte -= base2List[currentBit] + currentBit = currentBit + 1 + if(currentBit == 8): + currentByteIdx = currentByteIdx + 1 + currentByte = bytesList[currentByteIdx] + if(8 * (currentByteIdx + 1) > arucoBits.size): + currentBit = 8 * (currentByteIdx + 1) - arucoBits.size + else: + currentBit = 0; + return arucoBits + + def __DrawBlock(context, + dictionary = None, markerLength = None, borderBits = 1, + chessboardSize = (1, 1), squareLength = None, firstMarkerID = 0, + blockX = 0, blockY = 0, originX = 0, originY = 0, pageBorderX = 0, pageBorderY = 0, + mode = "CHESS" ): + + if(squareLength is None): + squareLength = markerLength + + if(markerLength is None): + markerLength = squareLength + + if((squareLength is None) or (markerLength is None)): + raise ValueError("lenght is None") + + if((( blockX % 2 == 0 ) == ( blockY % 2 == 0 )) or mode == "ARUCOGRID"): + if (mode != "CHESS"): + if(dictionary is None): + raise ValueError("dictionary is None") + + if (mode == "CHARUCO"): + originX = (blockX - originX) * squareLength + (squareLength - markerLength)*0.5 + pageBorderX + originY = (blockY - originY) * squareLength + (squareLength - markerLength)*0.5 + pageBorderY + else: + originX = (blockX - originX) * squareLength + pageBorderX + originY = (blockY - originY) * squareLength + pageBorderY + + context.set_source_rgba(0.0, 0.0, 0.0, 1.0) + context.rectangle(originX, originY, markerLength, markerLength) + context.fill() + + # Generate marker + if (mode == "CHARUCO"): + markerID = firstMarkerID + (blockY * chessboardSize[0] + blockX) // 2 + elif (mode == "ARUCO"): + markerID = firstMarkerID + elif (mode == "ARUCOGRID"): + markerID = firstMarkerID + (blockY * chessboardSize[0] + blockX) + + marker = MarkerPrinter.ArucoBits(dictionary, markerID) + markerSize = marker.shape[0] + unitLength = markerLength / (float)(markerSize + borderBits * 2) + + markerBitMap = np.zeros(shape = (markerSize+borderBits*2, markerSize+borderBits*2), dtype = bool) + markerBitMap[borderBits:-borderBits,borderBits:-borderBits] = marker + markerBitMap = np.swapaxes(markerBitMap, 0, 1) + + # Compute edges + hEdges = np.zeros(shape = (markerSize+1,markerSize+1), dtype = bool) + vEdges = np.zeros(shape = (markerSize+1,markerSize+1), dtype = bool) + + for mx in range(markerSize): + for my in range(markerSize+1): + if ( markerBitMap[mx + borderBits, my + borderBits - 1] ^ markerBitMap[mx + borderBits, my + borderBits]): + hEdges[mx, my] = True + + for mx in range(markerSize+1): + for my in range(markerSize): + if ( markerBitMap[mx + borderBits - 1, my + borderBits] ^ markerBitMap[mx + borderBits, my + borderBits]): + vEdges[mx, my] = True + + # Use for debug, check edge or position is correct or not + if(MarkerPrinter.debugMode is not None): + if(MarkerPrinter.debugMode.upper() == "LINE"): + context.set_source_rgba(1.0, 1.0, 1.0, 1.0) + context.set_line_width(unitLength * 0.1) + for mx in range(markerSize+1): + for my in range(markerSize+1): + if(hEdges[mx, my]): + context.move_to(originX + unitLength * (mx + borderBits ), originY + unitLength * (my + borderBits )) + context.line_to(originX + unitLength * (mx + borderBits + 1), originY + unitLength * (my + borderBits )) + context.stroke() + if(vEdges[mx, my]): + context.move_to(originX + unitLength * (mx + borderBits ), originY + unitLength * (my + borderBits )) + context.line_to(originX + unitLength * (mx + borderBits ), originY + unitLength * (my + borderBits + 1)) + context.stroke() + + elif(MarkerPrinter.debugMode.upper() == "BLOCK"): + context.set_source_rgba(1.0, 1.0, 1.0, 1.0) + for mx in range(markerSize): + for my in range(markerSize): + if(markerBitMap[mx + borderBits, my + borderBits]): + context.rectangle( + originX + unitLength * (mx + borderBits), + originY + unitLength * (my + borderBits), + unitLength, unitLength) + context.fill() + + else: + while(True): + found = False + + # Find start position + sx = 0 + sy = 0 + for my in range(markerSize): + for mx in range(markerSize): + if(hEdges[mx, my]): + found = True + sx = mx + sy = my + if(markerBitMap[sx + borderBits, sy + borderBits - 1]): + context.set_source_rgba(0.0, 0.0, 0.0, 1.0) + else: + context.set_source_rgba(1.0, 1.0, 1.0, 1.0) + break + if(found): + break + + context.move_to (originX + unitLength * (sx + borderBits), originY + unitLength * (sy + borderBits)) + + # Use wall follower maze solving algorithm to draw white part + cx = sx + cy = sy + cd = 3 # 0 right, 1 down, 2 left, 3 up + while(True): + nd = (cd + 1)%4 + moved = False + if(nd == 0): + if(hEdges[cx, cy]): + hEdges[cx, cy] = False + cx = cx + 1 + moved = True + elif(nd == 1): + if(vEdges[cx, cy]): + vEdges[cx, cy] = False + cy = cy + 1 + moved = True + elif(nd == 2): + if(hEdges[cx - 1, cy]): + hEdges[cx - 1, cy] = False + cx = cx - 1 + moved = True + elif(nd == 3): + if(vEdges[cx, cy - 1]): + vEdges[cx, cy - 1] = False + cy = cy - 1 + moved = True + + if((cx == sx) and (cy == sy)): + context.close_path () + break + else: + if(moved): + context.line_to(originX + unitLength * (cx + borderBits), originY + unitLength * (cy + borderBits)) + cd = nd + + if (found): + context.fill() + else: + break + + else: + originX = (blockX - originX) * squareLength + pageBorderX + originY = (blockY - originY) * squareLength + pageBorderY + context.set_source_rgba(0.0, 0.0, 0.0, 1.0) + context.rectangle(originX, originY, squareLength, squareLength) + context.fill() + + def __CheckChessMarkerImage(chessboardSize, squareLength, subSize=None, pageBorder=(0,0)): + if(len(chessboardSize) != 2): + raise ValueError("len(chessboardSize) != 2") + else: + sizeX, sizeY = chessboardSize + + if(len(pageBorder) != 2): + raise ValueError("len(pageBorder) != 2") + else: + pageBorderX, pageBorderY = pageBorder + + if(sizeX <= 1): + raise ValueError("sizeX <= 1") + + if(sizeY <= 1): + raise ValueError("sizeY <= 1") + + if(squareLength <= 0): + raise ValueError("squareLength <= 0") + + if(pageBorderX < 0): + raise ValueError("pageBorderX < 0") + + if(pageBorderY < 0): + raise ValueError("pageBorderY < 0") + + if(subSize is not None): + subSizeX, subSizeY = subSize + + if(subSizeX < 0): + raise ValueError("subSizeX < 0") + + if(subSizeY < 0): + raise ValueError("subSizeY < 0") + + def PreviewChessMarkerImage(chessboardSize, squareLength, pageBorder=(0, 0), dpi=96): + MarkerPrinter.__CheckChessMarkerImage(chessboardSize, squareLength, pageBorder=pageBorder) + + squareLength = squareLength * MarkerPrinter.ptPerMeter + pageBorder = (pageBorder[0] * MarkerPrinter.ptPerMeter, pageBorder[1] * MarkerPrinter.ptPerMeter) + + prevImage = None + with tempfile.TemporaryDirectory() as tmpdirname: + with MarkerPrinter.surface[".SVG"] ( + os.path.join(tmpdirname, "tempSVG.svg"), + chessboardSize[0] * squareLength + pageBorder[0] * 2, + chessboardSize[1] * squareLength + pageBorder[1] * 2) as surface: + context = cairo.Context(surface) + + context.set_source_rgba(0.5, 0.5, 0.5, 1.0) + context.rectangle(0, 0, + chessboardSize[0] * squareLength + pageBorder[0] * 2, + chessboardSize[1] * squareLength + pageBorder[1] * 2) + context.fill() + + context.set_source_rgba(1.0, 1.0, 1.0, 1.0) + context.rectangle(pageBorder[0], pageBorder[1], + chessboardSize[0] * squareLength, + chessboardSize[1] * squareLength) + context.fill() + + for bx in range(chessboardSize[0]): + for by in range(chessboardSize[1]): + MarkerPrinter.__DrawBlock( + context = context, + chessboardSize = chessboardSize, + squareLength = squareLength, + blockX = bx, + blockY = by, + pageBorderX = pageBorder[0], + pageBorderY = pageBorder[1], + mode = "CHESS") + + with open(os.path.join(tmpdirname, "tempSVG.svg")) as file: + prevImage = Image.open(io.BytesIO(svg2png(bytestring=file.read(), dpi=dpi))) + + return prevImage + + def GenChessMarkerImage(filePath, chessboardSize, squareLength, subSize=None, pageBorder=(0, 0)): + MarkerPrinter.__CheckChessMarkerImage(chessboardSize, squareLength, subSize=subSize, pageBorder=pageBorder) + + squareLength = squareLength * MarkerPrinter.ptPerMeter + pageBorder = (pageBorder[0] * MarkerPrinter.ptPerMeter, pageBorder[1] * MarkerPrinter.ptPerMeter) + + # Check + path, nameExt = os.path.split(filePath) + name, ext = os.path.splitext(nameExt) + + if(len(path) > 0): + if not(os.path.isdir(path)): + os.makedirs(path) + + if((ext.upper() != ".SVG") and (ext.upper() != ".PS") and (ext.upper() != ".PDF")): + raise ValueError("file extention is not supported, should be: svg, ps, pdf") + + # Draw + with MarkerPrinter.surface[ext.upper()] ( + filePath, + chessboardSize[0] * squareLength + pageBorder[0] * 2, + chessboardSize[1] * squareLength + pageBorder[1] * 2) as surface: + context = cairo.Context(surface) + + context.set_source_rgba(0.5, 0.5, 0.5, 1.0) + context.rectangle(0, 0, + chessboardSize[0] * squareLength + pageBorder[0] * 2, + chessboardSize[1] * squareLength + pageBorder[1] * 2) + context.fill() + + context.set_source_rgba(1.0, 1.0, 1.0, 1.0) + context.rectangle(pageBorder[0], pageBorder[1], + chessboardSize[0] * squareLength, + chessboardSize[1] * squareLength) + context.fill() + + for bx in range(chessboardSize[0]): + for by in range(chessboardSize[1]): + MarkerPrinter.__DrawBlock( + context = context, + chessboardSize = chessboardSize, + squareLength = squareLength, + blockX = bx, + blockY = by, + pageBorderX = pageBorder[0], + pageBorderY = pageBorder[1], + mode = "CHESS" ) + + if(subSize is not None): + subDivide = (\ + chessboardSize[0] // subSize[0] + int(chessboardSize[0] % subSize[0] > 0), + chessboardSize[1] // subSize[1] + int(chessboardSize[1] % subSize[1] > 0)) + + subChessboardBlockX = np.clip ( np.arange(0, subSize[0] * subDivide[0] + 1, subSize[0]), 0, chessboardSize[0]) + subChessboardBlockY = np.clip ( np.arange(0, subSize[1] * subDivide[1] + 1, subSize[1]), 0, chessboardSize[1]) + + subChessboardSliceX = subChessboardBlockX.astype(np.float) * squareLength + subChessboardSliceY = subChessboardBlockY.astype(np.float) * squareLength + + for subXID in range(subDivide[0]): + for subYID in range(subDivide[1]): + subName = name + \ + "_X" + str(subChessboardBlockX[subXID]) + "_" + str(subChessboardBlockX[subXID+1]) + \ + "_Y" + str(subChessboardBlockY[subYID]) + "_" + str(subChessboardBlockY[subYID+1]) + + with MarkerPrinter.surface[ext.upper()]( + os.path.join(path, subName + ext), + subChessboardSliceX[subXID+1] - subChessboardSliceX[subXID] + pageBorder[0] * 2, + subChessboardSliceY[subYID+1] - subChessboardSliceY[subYID] + pageBorder[1] * 2) as surface: + context = cairo.Context(surface) + + context.set_source_rgba(0.5, 0.5, 0.5, 1.0) + context.rectangle(0, 0, + subChessboardSliceX[subXID+1] - subChessboardSliceX[subXID] + pageBorder[0] * 2, + subChessboardSliceY[subYID+1] - subChessboardSliceY[subYID] + pageBorder[1] * 2) + context.fill() + + context.set_source_rgba(1.0, 1.0, 1.0, 1.0) + context.rectangle(pageBorder[0], pageBorder[1], + subChessboardSliceX[subXID+1] - subChessboardSliceX[subXID], + subChessboardSliceY[subYID+1] - subChessboardSliceY[subYID]) + context.fill() + + for bx in range(subChessboardBlockX[subXID+1] - subChessboardBlockX[subXID]): + for by in range(subChessboardBlockY[subYID+1] - subChessboardBlockY[subYID]): + MarkerPrinter.__DrawBlock( + context = context, + chessboardSize = chessboardSize, + squareLength = squareLength, + blockX = subChessboardBlockX[subXID] + bx, + blockY = subChessboardBlockY[subYID] + by, + originX = subChessboardBlockX[subXID], + originY = subChessboardBlockY[subYID], + pageBorderX = pageBorder[0], + pageBorderY = pageBorder[1], + mode = "CHESS" ) + + + def __CheckArucoMarkerImage(dictionary, markerID, markerLength, borderBits=1, pageBorder=(0, 0)): + if(len(pageBorder) != 2): + raise ValueError("len(pageBorder) != 2") + else: + pageBorderX, pageBorderY = pageBorder + + if not (dictionary in MarkerPrinter.arucoDictBytesList): + raise ValueError("dictionary is not support") + + if(MarkerPrinter.arucoDictBytesList[dictionary].shape[0] <= markerID ): + raise ValueError("markerID is not in aruce dictionary") + + if(markerID < 0): + raise ValueError("markerID < 0") + + if(markerLength <= 0): + raise ValueError("markerLength <= 0") + + if(borderBits <= 0): + raise ValueError("borderBits <= 0") + + if(pageBorderX < 0): + raise ValueError("pageBorderX < 0") + + if(pageBorderY < 0): + raise ValueError("pageBorderY < 0") + + def PreviewArucoMarkerImage(dictionary, markerID, markerLength, borderBits=1, pageBorder=(0, 0), dpi=96): + MarkerPrinter.__CheckArucoMarkerImage(dictionary, markerID, markerLength, borderBits=borderBits, pageBorder=pageBorder) + + markerLength = markerLength * MarkerPrinter.ptPerMeter + pageBorder = (pageBorder[0] * MarkerPrinter.ptPerMeter, pageBorder[1] * MarkerPrinter.ptPerMeter) + + prevImage = None + with tempfile.TemporaryDirectory() as tmpdirname: + with MarkerPrinter.surface[".SVG"] ( + os.path.join(tmpdirname, "tempSVG.svg"), + markerLength + pageBorder[0] * 2, + markerLength + pageBorder[1] * 2) as surface: + context = cairo.Context(surface) + + context.set_source_rgba(0.5, 0.5, 0.5, 1.0) + context.rectangle(0, 0, + markerLength + pageBorder[0] * 2, + markerLength + pageBorder[1] * 2) + context.fill() + + context.set_source_rgba(1.0, 1.0, 1.0, 1.0) + context.rectangle(pageBorder[0], pageBorder[1], + markerLength, + markerLength) + context.fill() + + MarkerPrinter.__DrawBlock( + context = context, + dictionary = dictionary, + markerLength = markerLength, + borderBits = borderBits, + firstMarkerID = markerID, + pageBorderX = pageBorder[0], + pageBorderY = pageBorder[1], + mode = "ARUCO") + + with open(os.path.join(tmpdirname, "tempSVG.svg")) as file: + prevImage = Image.open(io.BytesIO(svg2png(bytestring=file.read(), dpi=dpi))) + + return prevImage + + def GenArucoMarkerImage(filePath, dictionary, markerID, markerLength, borderBits=1, pageBorder=(0, 0)): + MarkerPrinter.__CheckArucoMarkerImage(dictionary, markerID, markerLength, borderBits=borderBits, pageBorder=pageBorder) + + markerLength = markerLength * MarkerPrinter.ptPerMeter + pageBorder = (pageBorder[0] * MarkerPrinter.ptPerMeter, pageBorder[1] * MarkerPrinter.ptPerMeter) + + # Check + path, nameExt = os.path.split(filePath) + name, ext = os.path.splitext(nameExt) + + if(len(path) > 0): + if not(os.path.isdir(path)): + os.makedirs(path) + + if((ext.upper() != ".SVG") and (ext.upper() != ".PS") and (ext.upper() != ".PDF")): + raise ValueError("file extention is not supported, should be: svg, ps, pdf") + + # Draw + with MarkerPrinter.surface[ext.upper()] ( + filePath, + markerLength + pageBorder[0] * 2, + markerLength + pageBorder[1] * 2) as surface: + context = cairo.Context(surface) + + context.set_source_rgba(0.5, 0.5, 0.5, 1.0) + context.rectangle(0, 0, + markerLength + pageBorder[0] * 2, + markerLength + pageBorder[1] * 2) + context.fill() + + context.set_source_rgba(1.0, 1.0, 1.0, 1.0) + context.rectangle(pageBorder[0], pageBorder[1], + markerLength, + markerLength) + context.fill() + + MarkerPrinter.__DrawBlock( + context = context, + dictionary = dictionary, + markerLength = markerLength, + borderBits = borderBits, + firstMarkerID = markerID, + pageBorderX = pageBorder[0], + pageBorderY = pageBorder[1], + mode = "ARUCO") + + def __CheckCharucoMarkerImage(dictionary, chessboardSize, squareLength, markerLength, borderBits=1, subSize=None, pageBorder=(0, 0)): + if(len(chessboardSize) != 2): + raise ValueError("len(chessboardSize) != 2") + else: + sizeX, sizeY = chessboardSize + + if(len(pageBorder) != 2): + raise ValueError("len(pageBorder) != 2") + else: + pageBorderX, pageBorderY = pageBorder + + if not (dictionary in MarkerPrinter.arucoDictBytesList): + raise ValueError("dictionary is not support") + + if(MarkerPrinter.arucoDictBytesList[dictionary].shape[0] < (( sizeX * sizeY ) // 2)): + raise ValueError("aruce dictionary is not enough for your board size") + + if(sizeX <= 1): + raise ValueError("sizeX <= 1") + + if(sizeY <= 1): + raise ValueError("sizeY <= 1") + + if(squareLength <= 0): + raise ValueError("squareLength <= 0") + + if(markerLength <= 0): + raise ValueError("markerLength <= 0") + + if(squareLength < markerLength): + raise ValueError("squareLength < markerLength") + + if(borderBits <= 0): + raise ValueError("borderBits <= 0") + + if(pageBorderX < 0): + raise ValueError("pageBorderX < 0") + + if(pageBorderY < 0): + raise ValueError("pageBorderY < 0") + + if(subSize is not None): + subSizeX, subSizeY = subSize + + if(subSizeX < 0): + raise ValueError("subSizeX < 0") + + if(subSizeY < 0): + raise ValueError("subSizeY < 0") + + def PreviewCharucoMarkerImage(dictionary, chessboardSize, squareLength, markerLength, borderBits=1, pageBorder=(0, 0), dpi=96): + MarkerPrinter.__CheckCharucoMarkerImage(dictionary, chessboardSize, squareLength, markerLength, borderBits=borderBits, pageBorder=pageBorder) + + squareLength = squareLength * MarkerPrinter.ptPerMeter + markerLength = markerLength * MarkerPrinter.ptPerMeter + pageBorder = (pageBorder[0] * MarkerPrinter.ptPerMeter, pageBorder[1] * MarkerPrinter.ptPerMeter) + + prevImage = None + with tempfile.TemporaryDirectory() as tmpdirname: + with MarkerPrinter.surface[".SVG"] ( + os.path.join(tmpdirname, "tempSVG.svg"), + chessboardSize[0] * squareLength + pageBorder[0] * 2, + chessboardSize[1] * squareLength + pageBorder[1] * 2) as surface: + context = cairo.Context(surface) + + context.set_source_rgba(0.5, 0.5, 0.5, 1.0) + context.rectangle(0, 0, + chessboardSize[0] * squareLength + pageBorder[0] * 2, + chessboardSize[1] * squareLength + pageBorder[1] * 2) + context.fill() + + context.set_source_rgba(1.0, 1.0, 1.0, 1.0) + context.rectangle(pageBorder[0], pageBorder[1], + chessboardSize[0] * squareLength, + chessboardSize[1] * squareLength) + context.fill() + + for bx in range(chessboardSize[0]): + for by in range(chessboardSize[1]): + MarkerPrinter.__DrawBlock( + context = context, + dictionary = dictionary, + markerLength = markerLength, + borderBits = borderBits, + chessboardSize = chessboardSize, + squareLength = squareLength, + blockX = bx, + blockY = by, + pageBorderX = pageBorder[0], + pageBorderY = pageBorder[1], + mode = "CHARUCO") + + with open(os.path.join(tmpdirname, "tempSVG.svg")) as file: + prevImage = Image.open(io.BytesIO(svg2png(bytestring=file.read(), dpi=dpi))) + + return prevImage + + def GenCharucoMarkerImage(filePath, dictionary, chessboardSize, squareLength, markerLength, borderBits=1, subSize=None, pageBorder=(0, 0)): + MarkerPrinter.__CheckCharucoMarkerImage(dictionary, chessboardSize, squareLength, markerLength, borderBits=borderBits, subSize=subSize, pageBorder=pageBorder) + + squareLength = squareLength * MarkerPrinter.ptPerMeter + markerLength = markerLength * MarkerPrinter.ptPerMeter + pageBorder = (pageBorder[0] * MarkerPrinter.ptPerMeter, pageBorder[1] * MarkerPrinter.ptPerMeter) + + # Check + path, nameExt = os.path.split(filePath) + name, ext = os.path.splitext(nameExt) + + if(len(path) > 0): + if not(os.path.isdir(path)): + os.makedirs(path) + + if((ext.upper() != ".SVG") and (ext.upper() != ".PS") and (ext.upper() != ".PDF")): + raise ValueError("file extention is not supported, should be: svg, ps, pdf") + + # Draw + with MarkerPrinter.surface[ext.upper()] ( + filePath, + chessboardSize[0] * squareLength + pageBorder[0] * 2, + chessboardSize[1] * squareLength + pageBorder[1] * 2) as surface: + context = cairo.Context(surface) + + context.set_source_rgba(0.5, 0.5, 0.5, 1.0) + context.rectangle(0, 0, + chessboardSize[0] * squareLength + pageBorder[0] * 2, + chessboardSize[1] * squareLength + pageBorder[1] * 2) + context.fill() + + context.set_source_rgba(1.0, 1.0, 1.0, 1.0) + context.rectangle(pageBorder[0], pageBorder[1], + chessboardSize[0] * squareLength, + chessboardSize[1] * squareLength) + context.fill() + + for bx in range(chessboardSize[0]): + for by in range(chessboardSize[1]): + MarkerPrinter.__DrawBlock( + context = context, + dictionary = dictionary, + markerLength = markerLength, + borderBits = borderBits, + chessboardSize = chessboardSize, + squareLength = squareLength, + blockX = bx, + blockY = by, + pageBorderX = pageBorder[0], + pageBorderY = pageBorder[1], + mode = "CHARUCO") + + if(subSize is not None): + subDivide = (\ + chessboardSize[0] // subSize[0] + int(chessboardSize[0] % subSize[0] > 0), + chessboardSize[1] // subSize[1] + int(chessboardSize[1] % subSize[1] > 0)) + + subChessboardBlockX = np.clip ( np.arange(0, subSize[0] * subDivide[0] + 1, subSize[0]), 0, chessboardSize[0]) + subChessboardBlockY = np.clip ( np.arange(0, subSize[1] * subDivide[1] + 1, subSize[1]), 0, chessboardSize[1]) + + subChessboardSliceX = subChessboardBlockX.astype(np.float) * squareLength + subChessboardSliceY = subChessboardBlockY.astype(np.float) * squareLength + + for subXID in range(subDivide[0]): + for subYID in range(subDivide[1]): + subName = name + \ + "_X" + str(subChessboardBlockX[subXID]) + "_" + str(subChessboardBlockX[subXID+1]) + \ + "_Y" + str(subChessboardBlockY[subYID]) + "_" + str(subChessboardBlockY[subYID+1]) + + with MarkerPrinter.surface[ext.upper()]( + os.path.join(path, subName + ext), + subChessboardSliceX[subXID+1] - subChessboardSliceX[subXID] + pageBorder[0] * 2, + subChessboardSliceY[subYID+1] - subChessboardSliceY[subYID] + pageBorder[1] * 2) as surface: + context = cairo.Context(surface) + + context.set_source_rgba(0.5, 0.5, 0.5, 1.0) + context.rectangle(0, 0, + subChessboardSliceX[subXID+1] - subChessboardSliceX[subXID] + pageBorder[0] * 2, + subChessboardSliceY[subYID+1] - subChessboardSliceY[subYID] + pageBorder[1] * 2) + context.fill() + + context.set_source_rgba(1.0, 1.0, 1.0, 1.0) + context.rectangle(pageBorder[0], pageBorder[1], + subChessboardSliceX[subXID+1] - subChessboardSliceX[subXID], + subChessboardSliceY[subYID+1] - subChessboardSliceY[subYID]) + context.fill() + + for bx in range(subChessboardBlockX[subXID+1] - subChessboardBlockX[subXID]): + for by in range(subChessboardBlockY[subYID+1] - subChessboardBlockY[subYID]): + MarkerPrinter.__DrawBlock( + context = context, + dictionary = dictionary, + markerLength = markerLength, + borderBits = borderBits, + chessboardSize = chessboardSize, + squareLength = squareLength, + blockX = subChessboardBlockX[subXID] + bx, + blockY = subChessboardBlockY[subYID] + by, + originX = subChessboardBlockX[subXID], + originY = subChessboardBlockY[subYID], + pageBorderX = pageBorder[0], + pageBorderY = pageBorder[1], + mode = "CHARUCO") + + def __CheckArucoGridMarkerImage(dictionary, chessboardSize, markerLength, markerSeparation, firstMarker, borderBits=1, subSize=None, pageBorder=(0, 0)): + if(len(chessboardSize) != 2): + raise ValueError("len(chessboardSize) != 2") + else: + sizeX, sizeY = chessboardSize + + if(len(pageBorder) != 2): + raise ValueError("len(pageBorder) != 2") + else: + pageBorderX, pageBorderY = pageBorder + + if not (dictionary in MarkerPrinter.arucoDictBytesList): + raise ValueError("dictionary is not support") + + if(MarkerPrinter.arucoDictBytesList[dictionary].shape[0] < (( sizeX * sizeY ) + firstMarker)): + raise ValueError("aruce dictionary is not enough for your board size and firstMarker") + + if(sizeX <= 1): + raise ValueError("sizeX <= 1") + + if(sizeY <= 1): + raise ValueError("sizeY <= 1") + + if(markerLength <= 0): + raise ValueError("markerLength <= 0") + + if(markerSeparation <= 0): + raise ValueError("markerSeparation <= 0") + + if(borderBits <= 0): + raise ValueError("borderBits <= 0") + + if(pageBorderX < 0): + raise ValueError("pageBorderX < 0") + + if(pageBorderY < 0): + raise ValueError("pageBorderY < 0") + + if(subSize is not None): + subSizeX, subSizeY = subSize + + if(subSizeX < 0): + raise ValueError("subSizeX < 0") + + if(subSizeY < 0): + raise ValueError("subSizeY < 0") + + def PreviewArucoGridMarkerImage(dictionary, chessboardSize, markerLength, markerSeparation, firstMarker, borderBits=1, pageBorder=(0, 0), dpi=96): + MarkerPrinter.__CheckArucoGridMarkerImage(dictionary, chessboardSize, markerLength, markerSeparation, firstMarker, borderBits=borderBits, pageBorder=pageBorder) + + markerLength = markerLength * MarkerPrinter.ptPerMeter + markerSeparation = markerSeparation * MarkerPrinter.ptPerMeter + pageBorder = (pageBorder[0] * MarkerPrinter.ptPerMeter, pageBorder[1] * MarkerPrinter.ptPerMeter) + + prevImage = None + with tempfile.TemporaryDirectory() as tmpdirname: + with MarkerPrinter.surface[".SVG"] ( + os.path.join(tmpdirname, "tempSVG.svg"), + chessboardSize[0] * markerLength + (chessboardSize[0] - 1) * markerSeparation + pageBorder[0] * 2, + chessboardSize[1] * markerLength + (chessboardSize[1] - 1) * markerSeparation + pageBorder[1] * 2) as surface: + context = cairo.Context(surface) + + context.set_source_rgba(0.5, 0.5, 0.5, 1.0) + context.rectangle(0, 0, + chessboardSize[0] * markerLength + (chessboardSize[0] - 1) * markerSeparation + pageBorder[0] * 2, + chessboardSize[1] * markerLength + (chessboardSize[1] - 1) * markerSeparation + pageBorder[1] * 2) + context.fill() + + context.set_source_rgba(1.0, 1.0, 1.0, 1.0) + context.rectangle(pageBorder[0], pageBorder[1], + chessboardSize[0] * markerLength + (chessboardSize[0] - 1) * markerSeparation, + chessboardSize[1] * markerLength + (chessboardSize[1] - 1) * markerSeparation) + context.fill() + + for bx in range(chessboardSize[0]): + for by in range(chessboardSize[1]): + MarkerPrinter.__DrawBlock( + context = context, + dictionary = dictionary, + markerLength = markerLength, + borderBits = borderBits, + chessboardSize = chessboardSize, + squareLength = markerLength + markerSeparation, + firstMarkerID = firstMarker, + blockX = bx, + blockY = by, + pageBorderX = pageBorder[0], + pageBorderY = pageBorder[1], + mode = "ARUCOGRID") + + with open(os.path.join(tmpdirname, "tempSVG.svg")) as file: + prevImage = Image.open(io.BytesIO(svg2png(bytestring=file.read(), dpi=dpi))) + + return prevImage + + def GenArucoGridMarkerImage(filePath, dictionary, chessboardSize, markerLength, markerSeparation, firstMarker, borderBits=1, subSize=None, pageBorder=(0, 0)): + MarkerPrinter.__CheckArucoGridMarkerImage(dictionary, chessboardSize, markerLength, markerSeparation, firstMarker, borderBits=borderBits, subSize=subSize, pageBorder=pageBorder) + + markerLength = markerLength * MarkerPrinter.ptPerMeter + markerSeparation = markerSeparation * MarkerPrinter.ptPerMeter + pageBorder = (pageBorder[0] * MarkerPrinter.ptPerMeter, pageBorder[1] * MarkerPrinter.ptPerMeter) + + # Check + path, nameExt = os.path.split(filePath) + name, ext = os.path.splitext(nameExt) + + if(len(path) > 0): + if not(os.path.isdir(path)): + os.makedirs(path) + + if((ext.upper() != ".SVG") and (ext.upper() != ".PS") and (ext.upper() != ".PDF")): + raise ValueError("file extention is not supported, should be: svg, ps, pdf") + + # Draw + with MarkerPrinter.surface[ext.upper()] ( + filePath, + chessboardSize[0] * markerLength + (chessboardSize[0] - 1) * markerSeparation + pageBorder[0] * 2, + chessboardSize[1] * markerLength + (chessboardSize[1] - 1) * markerSeparation + pageBorder[1] * 2) as surface: + context = cairo.Context(surface) + + context.set_source_rgba(0.5, 0.5, 0.5, 1.0) + context.rectangle(0, 0, + chessboardSize[0] * markerLength + (chessboardSize[0] - 1) * markerSeparation + pageBorder[0] * 2, + chessboardSize[1] * markerLength + (chessboardSize[1] - 1) * markerSeparation + pageBorder[1] * 2) + context.fill() + + context.set_source_rgba(1.0, 1.0, 1.0, 1.0) + context.rectangle(pageBorder[0], pageBorder[1], + chessboardSize[0] * markerLength + (chessboardSize[0] - 1) * markerSeparation, + chessboardSize[1] * markerLength + (chessboardSize[1] - 1) * markerSeparation) + context.fill() + + for bx in range(chessboardSize[0]): + for by in range(chessboardSize[1]): + MarkerPrinter.__DrawBlock( + context = context, + dictionary = dictionary, + markerLength = markerLength, + borderBits = borderBits, + chessboardSize = chessboardSize, + squareLength = markerLength + markerSeparation, + firstMarkerID = firstMarker, + blockX = bx, + blockY = by, + pageBorderX = pageBorder[0], + pageBorderY = pageBorder[1], + mode = "ARUCOGRID") + + if(subSize is not None): + subDivide = (\ + chessboardSize[0] // subSize[0] + int(chessboardSize[0] % subSize[0] > 0), + chessboardSize[1] // subSize[1] + int(chessboardSize[1] % subSize[1] > 0)) + + subChessboardBlockX = np.clip ( np.arange(0, subSize[0] * subDivide[0] + 1, subSize[0]), 0, chessboardSize[0]) + subChessboardBlockY = np.clip ( np.arange(0, subSize[1] * subDivide[1] + 1, subSize[1]), 0, chessboardSize[1]) + + subChessboardSliceX = subChessboardBlockX.astype(np.float) * (markerLength + markerSeparation) + subChessboardSliceY = subChessboardBlockY.astype(np.float) * (markerLength + markerSeparation) + + subChessboardSliceX[-1] -= markerSeparation + subChessboardSliceY[-1] -= markerSeparation + + for subXID in range(subDivide[0]): + for subYID in range(subDivide[1]): + subName = name + \ + "_X" + str(subChessboardBlockX[subXID]) + "_" + str(subChessboardBlockX[subXID+1]) + \ + "_Y" + str(subChessboardBlockY[subYID]) + "_" + str(subChessboardBlockY[subYID+1]) + + with MarkerPrinter.surface[ext.upper()]( + os.path.join(path, subName + ext), + subChessboardSliceX[subXID+1] - subChessboardSliceX[subXID] + pageBorder[0] * 2, + subChessboardSliceY[subYID+1] - subChessboardSliceY[subYID] + pageBorder[1] * 2) as surface: + context = cairo.Context(surface) + + context.set_source_rgba(0.5, 0.5, 0.5, 1.0) + context.rectangle(0, 0, + subChessboardSliceX[subXID+1] - subChessboardSliceX[subXID] + pageBorder[0] * 2, + subChessboardSliceY[subYID+1] - subChessboardSliceY[subYID] + pageBorder[1] * 2) + context.fill() + + context.set_source_rgba(1.0, 1.0, 1.0, 1.0) + context.rectangle(pageBorder[0], pageBorder[1], + subChessboardSliceX[subXID+1] - subChessboardSliceX[subXID], + subChessboardSliceY[subYID+1] - subChessboardSliceY[subYID]) + context.fill() + + for bx in range(subChessboardBlockX[subXID+1] - subChessboardBlockX[subXID]): + for by in range(subChessboardBlockY[subYID+1] - subChessboardBlockY[subYID]): + MarkerPrinter.__DrawBlock( + context = context, + dictionary = dictionary, + markerLength = markerLength, + borderBits = borderBits, + chessboardSize = chessboardSize, + squareLength = markerLength + markerSeparation, + firstMarkerID = firstMarker, + blockX = subChessboardBlockX[subXID] + bx, + blockY = subChessboardBlockY[subYID] + by, + originX = subChessboardBlockX[subXID], + originY = subChessboardBlockY[subYID], + pageBorderX = pageBorder[0], + pageBorderY = pageBorder[1], + mode = "ARUCOGRID") + +if __name__ == '__main__': + parser = ArgumentParser() + + # Save marker image parameters + chessGroup = parser.add_argument_group('chess', 'Chessboard') + arucoGroup = parser.add_argument_group('aruco', 'ArUco') + arucoGridGroup = parser.add_argument_group('aruco_grid', 'ArUco grid') + charucoGroup = parser.add_argument_group('charuco', 'ChArUco') + exclusiveGroup = parser.add_mutually_exclusive_group() + + exclusiveGroup.add_argument( + "--chess", action='store_true', default=False, + help="Choose to save chessboard marker") + + exclusiveGroup.add_argument( + "--aruco", action='store_true', default=False, + help="Choose to save ArUco marker") + + exclusiveGroup.add_argument( + "--aruco_grid", action='store_true', default=False, + help="Choose to save ArUco grid marker") + + exclusiveGroup.add_argument( + "--charuco", action='store_true', default=False, + help="Choose to save ChArUco marker") + + # Utility functions parameters + exclusiveGroup.add_argument( + "--generate", dest="arucoDataFileName", + help="Generate aruco data to FILE", metavar="FILE") + + exclusiveGroup.add_argument( + "--list_dictionary", action='store_true', default=False, + help="List predefined aruco dictionary") + + # Parameters + # fileName + parser.add_argument( + "--file", dest="fileName", default="./image.pdf", + help="Save marker image to FILE", metavar="FILE") + for group in [chessGroup, arucoGroup, arucoGridGroup, charucoGroup]: + group.add_argument( + "--" + group.title + "_file", dest="fileName", + help="Save marker image to FILE", metavar="FILE") + + # dictionary + parser.add_argument( + "--dictionary", dest="dictionary", default="DICT_ARUCO_ORIGINAL", + help="Generate marker via predefined DICTIONARY aruco dictionary", metavar="DICTIONARY") + for group in [arucoGroup, arucoGridGroup, charucoGroup]: + group.add_argument( + "--" + group.title + "_dictionary", dest="dictionary", + help="Generate marker via predefined DICTIONARY aruco dictionary", metavar="DICTIONARY") + + # size + parser.add_argument( + "--size_x", dest="sizeX", default="16", + help="Save marker image with N board width", metavar="N") + parser.add_argument( + "--size_y", dest="sizeY", default="9", + help="Save marker image with N board height", metavar="N") + + for group in [chessGroup, arucoGridGroup, charucoGroup]: + group.add_argument( + "--" + group.title + "_size_x", dest="sizeX", + help="Save marker image with N board width", metavar="N") + group.add_argument( + "--" + group.title + "_size_y", dest="sizeY", + help="Save marker image with N board height", metavar="N") + + # length + parser.add_argument( + "--square_length", dest="squareLength", default="0.09", + help="Save marker image with L square length (Unit: meter)", metavar="L") + parser.add_argument( + "--marker_length", dest="markerLength", default="0.07", + help="Save marker image with L marker length (Unit: meter)", metavar="L") + parser.add_argument( + "--marker_separation", dest="markerSeparation", default="0.02", + help="Save marker image with L separation length (Unit: meter)", metavar="L") + + for group in [chessGroup, charucoGroup]: + group.add_argument( + "--" + group.title + "_square_length", dest="squareLength", + help="Save marker image with L blocks length (Unit: meter)", metavar="L") + + for group in [arucoGroup, arucoGridGroup, charucoGroup]: + group.add_argument( + "--" + group.title + "_marker_length", dest="markerLength", + help="Save marker image with L marker length (Unit: meter)", metavar="L") + + for group in [arucoGridGroup]: + group.add_argument( + "--" + group.title + "_marker_separation", dest="markerSeparation", + help="Save marker image with L gap length (Unit: meter)", metavar="L") + + # else + parser.add_argument( + "--marker_id", dest="markerID", default="0", + help="Save marker image with ID marker", metavar="ID") + parser.add_argument( + "--first_marker", dest="firstMarker", default="0", + help="Save marker image that start with ID marker", metavar="ID") + parser.add_argument( + "--border_bits", dest="borderBits", default="1", + help="Save marker image with N border size", metavar="N") + + for group in [arucoGroup]: + group.add_argument( + "--" + group.title + "_marker_id", dest="markerID", + help="Save marker image with ID marker", metavar="ID") + + for group in [arucoGridGroup]: + group.add_argument( + "--" + group.title + "_first_marker", dest="firstMarker", + help="Save marker image that start with ID marker", metavar="ID") + + for group in [arucoGroup, arucoGridGroup, charucoGroup]: + group.add_argument( + "--" + group.title + "_border_bits", dest="borderBits", + help="Save marker image with N border size", metavar="N") + + # sub size + parser.add_argument( + "--sub_size_x", dest="subSizeX", default="0", + help="Save marker image with N chuck width", metavar="N") + parser.add_argument( + "--sub_size_y", dest="subSizeY", default="0", + help="Save marker image with N chuck height", metavar="N") + + for group in [chessGroup, arucoGridGroup, charucoGroup]: + group.add_argument( + "--" + group.title + "_sub_size_x", dest="subSizeX", + help="Save marker image with N chuck width", metavar="N") + group.add_argument( + "--" + group.title + "_sub_size_y", dest="subSizeY", + help="Save marker image with N chuck height", metavar="N") + + # page border + parser.add_argument( + "--page_border_x", dest="pageBorderX", default="0", + help="Save with page border width L length (Unit: meter)", metavar="L") + parser.add_argument( + "--page_border_y", dest="pageBorderY", default="0", + help="Save with page border height L length (Unit: meter)", metavar="L") + + for group in [chessGroup, arucoGroup, arucoGridGroup, charucoGroup]: + group.add_argument( + "--" + group.title + "_page_border_x", dest="pageBorderX", default="0", + help="Save with page border width L length (Unit: meter)", metavar="L") + group.add_argument( + "--" + group.title + "_page_border_y", dest="pageBorderY", default="0", + help="Save with page border height L length (Unit: meter)", metavar="L") + + # Run + args = parser.parse_args() + + if(args.arucoDataFileName is not None): + print("Generate aruco data to: " + args.arucoDataFileName) + SaveArucoDictBytesList(args.arucoDataFileName) + + elif(args.list_dictionary): + print("List predefined aruco dictionary") + for i in MarkerPrinter.arucoDictBytesList.keys(): + print(i) + + elif(args.chess): + try: + sizeX = int(args.sizeX) + sizeY = int(args.sizeY) + squareLength = float(args.squareLength) + subSizeX = int(args.subSizeX) + subSizeY = int(args.subSizeY) + pageBorderX = float(args.pageBorderX) + pageBorderY = float(args.pageBorderY) + except ValueError as e: + warnings.warn(str(e)) + else: + print("Save chessboard marker with parms: " + \ + str({ \ + "fileName": args.fileName, \ + "sizeX": sizeX, \ + "sizeY": sizeY, \ + "squareLength": squareLength, \ + "subSizeX": subSizeX, \ + "subSizeY": subSizeY, \ + "pageBorderX": pageBorderX, \ + "pageBorderY": pageBorderY, \ + })) + + subSize = None + + if(subSizeX > 0): + if(subSizeY > 0): + subSize = (subSizeX, subSizeY) + else: + subSize = (subSizeX, sizeY) + else: + if(subSizeY > 0): + subSize = (sizeX, subSizeY) + else: + subSize = None + + # Gen + MarkerPrinter.GenChessMarkerImage(args.fileName, (sizeX, sizeY), squareLength, subSize = subSize, pageBorder = (pageBorderX, pageBorderY)) + + elif(args.aruco): + try: + markerLength = float(args.markerLength) + markerID = int(args.markerID) + borderBits = int(args.borderBits) + pageBorderX = float(args.pageBorderX) + pageBorderY = float(args.pageBorderY) + except ValueError as e: + warnings.warn(str(e)) + else: + print("Save ArUco marker with parms: " + \ + str({ \ + "fileName": args.fileName, \ + "dictionary": args.dictionary, \ + "markerLength": markerLength, \ + "markerID": markerID, \ + "borderBits": borderBits, \ + "pageBorderX": pageBorderX, \ + "pageBorderY": pageBorderY, \ + })) + + # Gen + MarkerPrinter.GenArucoMarkerImage(args.fileName, args.dictionary, markerID, markerLength, borderBits=borderBits, pageBorder = (pageBorderX, pageBorderY)) + + elif(args.aruco_grid): + try: + sizeX = int(args.sizeX) + sizeY = int(args.sizeY) + markerLength = float(args.markerLength) + markerSeparation = float(args.markerSeparation) + firstMarker = int(args.firstMarker) + borderBits = int(args.borderBits) + subSizeX = int(args.subSizeX) + subSizeY = int(args.subSizeY) + pageBorderX = float(args.pageBorderX) + pageBorderY = float(args.pageBorderY) + except ValueError as e: + warnings.warn(str(e)) + else: + print("Save ArUco grid marker with parms: " + \ + str({ \ + "fileName": args.fileName, \ + "dictionary": args.dictionary, \ + "sizeX": sizeX, \ + "sizeY": sizeY, \ + "markerLength": markerLength, \ + "markerSeparation": markerSeparation, \ + "firstMarker": firstMarker, \ + "borderBits": borderBits, \ + "subSizeX": subSizeX, \ + "subSizeY": subSizeY, \ + "pageBorderX": pageBorderX, \ + "pageBorderY": pageBorderY, \ + })) + + subSize = None + + if(subSizeX > 0): + if(subSizeY > 0): + subSize = (subSizeX, subSizeY) + else: + subSize = (subSizeX, sizeY) + else: + if(subSizeY > 0): + subSize = (sizeX, subSizeY) + else: + subSize = None + + # Gen + MarkerPrinter.GenArucoGridMarkerImage(args.fileName, args.dictionary, (sizeX, sizeY), markerLength, markerSeparation, firstMarker, borderBits=borderBits, subSize=subSize, pageBorder = (pageBorderX, pageBorderY)) + + elif(args.charuco): + try: + sizeX = int(args.sizeX) + sizeY = int(args.sizeY) + squareLength = float(args.squareLength) + markerLength = float(args.markerLength) + borderBits = int(args.borderBits) + subSizeX = int(args.subSizeX) + subSizeY = int(args.subSizeY) + pageBorderX = float(args.pageBorderX) + pageBorderY = float(args.pageBorderY) + except ValueError as e: + warnings.warn(str(e)) + else: + print("Save ChArUco marker with parms: " + \ + str({ \ + "fileName": args.fileName, \ + "dictionary": args.dictionary, \ + "sizeX": sizeX, \ + "sizeY": sizeY, \ + "squareLength": squareLength, \ + "markerLength": markerLength, \ + "borderBits": borderBits, \ + "subSizeX": subSizeX, \ + "subSizeY": subSizeY, \ + "pageBorderX": pageBorderX, \ + "pageBorderY": pageBorderY, \ + })) + + subSize = None + + if(subSizeX > 0): + if(subSizeY > 0): + subSize = (subSizeX, subSizeY) + else: + subSize = (subSizeX, sizeY) + else: + if(subSizeY > 0): + subSize = (sizeX, subSizeY) + else: + subSize = None + + # Gen + MarkerPrinter.GenCharucoMarkerImage(args.fileName, args.dictionary, (sizeX, sizeY), squareLength, markerLength, borderBits=borderBits, subSize=subSize, pageBorder = (pageBorderX, pageBorderY)) + + else: + parser.print_help() diff --git a/modules/aruco/misc/pattern_generator/MarkerPrinterGUI.py b/modules/aruco/misc/pattern_generator/MarkerPrinterGUI.py new file mode 100644 index 000000000..bdd6d3cb0 --- /dev/null +++ b/modules/aruco/misc/pattern_generator/MarkerPrinterGUI.py @@ -0,0 +1,565 @@ +#!/usr/bin/env python3 + +# SPDX-License-Identifier: BSD-3-Clause +# +# Copyright (c) 2019, Josh Chien. All rights reserved. + +from MarkerPrinter import * + +import tkinter as tk +from tkinter import ttk, filedialog, messagebox + +import time + +import PIL.Image +import PIL.ImageTk + +class MarkerPrinterGUI: + + def VisDPI(self, shape): + scale0 = float(self.displayShape[0]) / float(shape[0]) + scale1 = float(self.displayShape[1]) / float(shape[1]) + if(scale0 > scale1): + return scale1 * 96.0 + else: + return scale0 * 96.0 + + def OnShowingHelpGithub(self): + messagebox.showinfo("Github", + "https://github.com/dogod621/OpenCVMarkerPrinter") + + def OnCloseWindow(self): + if(self.window is not None): + if messagebox.askokcancel("Quit", "Do you want to quit?"): + self.window.destroy() + self.window = None + + def OnSelectCharucoMarkerDictionary(self, pDictName): + self.charucoMarkerDictionaryStr.set(pDictName) + + def __SaveMarker(GenMarkerImageCallback, *args, **kwargs): + + if(kwargs.get("subSize",None) is not None): + subSizeX, subSizeY = kwargs["subSize"] + + kwargs["subSize"] = None + + if(subSizeX > 0): + if(subSizeY > 0): + kwargs["subSize"] = (subSizeX, subSizeY) + else: + kwargs["subSize"] = (subSizeX, sizeY) + else: + if(subSizeY > 0): + kwargs["subSize"] = (sizeX, subSizeY) + else: + kwargs["subSize"] = None + + try: + askFileName = filedialog.asksaveasfilename(initialdir = os.path.abspath("./"), title = "Output", filetypes = (\ + ("scalable vector graphics files","*.svg"), \ + ("portable document format files","*.pdf"), \ + ("post script files","*.ps")), + defaultextension="*.*") + + if (askFileName): + GenMarkerImageCallback(askFileName, *args, **kwargs) + + except Exception as e: + warnings.warn(str(e)) + messagebox.showinfo("Error", "Save marker failed") + return + + def OnPreviewOrSaveCharucoMarker(self, askSave = False): + try: + sizeX = int(self.charucoMarkerChessboardSizeXStr.get()) + sizeY = int(self.charucoMarkerChessboardSizeYStr.get()) + squareLength = float(self.charucoMarkerSquareLengthStr.get()) + markerLength = float(self.charucoMarkerMarkerLengthStr.get()) + borderBits = int(self.charucoMarkerBorderBitsStr.get()) + dictionary = self.charucoMarkerDictionaryStr.get() + subSizeX = int(self.charucoMarkerSaveSubSizeXStr.get()) + subSizeY = int(self.charucoMarkerSaveSubSizeYStr.get()) + pageBorderX = float(self.charucoMarkerSavePageBorderXStr.get()) + pageBorderY = float(self.charucoMarkerSavePageBorderYStr.get()) + except ValueError as e: + warnings.warn(str(e)) + messagebox.showinfo("Error", "Enter invalid parameters") + return + except Exception as e: + warnings.warn(str(e)) + messagebox.showinfo("Error", "Fail to get parameters") + return + + # Preview + try: + dpi = self.VisDPI(((sizeY * squareLength + pageBorderY * 2) * MarkerPrinter.ptPerMeter, (sizeX * squareLength + pageBorderX * 2) * MarkerPrinter.ptPerMeter)) + tkImage = PIL.ImageTk.PhotoImage(image = MarkerPrinter.PreviewCharucoMarkerImage(dictionary, (sizeX, sizeY), squareLength, markerLength, borderBits=borderBits, pageBorder = (pageBorderX, pageBorderY), dpi=dpi)) + self.charucoMarkerImageLabel.imgtk = tkImage + self.charucoMarkerImageLabel.config(image=tkImage) + except Exception as e: + warnings.warn(str(e)) + messagebox.showinfo("Error", "create marker failed") + return + + # Save + if(askSave): + MarkerPrinterGUI.__SaveMarker(MarkerPrinter.GenCharucoMarkerImage, \ + dictionary, (sizeX, sizeY), squareLength, markerLength, borderBits=borderBits, subSize = (subSizeX, subSizeY), pageBorder = (pageBorderX, pageBorderY)) + + def OnPreviewCharucoMarker(self): + self.OnPreviewOrSaveCharucoMarker(askSave = False) + + def OnSaveCharucoMarker(self): + self.OnPreviewOrSaveCharucoMarker(askSave = True) + + def InitCharucoMarkerTab(self): + self.charucoMarkerUIFrame = ttk.Frame(self.charucoMarkerTab) + self.charucoMarkerImageTab = ttk.Frame(self.charucoMarkerTab) + self.charucoMarkerUIFrame2 = ttk.Frame(self.charucoMarkerTab) + + self.charucoMarkerUIFrame.grid(row=0, column=0, sticky = tk.NSEW) + self.charucoMarkerImageTab.grid(row=1, column=0, sticky = tk.NSEW) + self.charucoMarkerUIFrame2.grid(row=2, column=0, sticky = tk.NSEW) + + self.charucoMarkerImageLabel = tk.Label(self.charucoMarkerImageTab) + self.charucoMarkerImageLabel.grid(row=0, column=0, sticky = tk.NSEW) + + tk.Label(self.charucoMarkerUIFrame, text="dictionary").grid(row=0, column=0, sticky = tk.NSEW) + tk.Label(self.charucoMarkerUIFrame, text="chessboardSizeX").grid(row=0, column=1, sticky = tk.NSEW) + tk.Label(self.charucoMarkerUIFrame, text="chessboardSizeY").grid(row=0, column=2, sticky = tk.NSEW) + tk.Label(self.charucoMarkerUIFrame, text="squareLength (Unit: Meter)").grid(row=0, column=3, sticky = tk.NSEW) + tk.Label(self.charucoMarkerUIFrame, text="markerLength (Unit: Meter)").grid(row=0, column=4, sticky = tk.NSEW) + tk.Label(self.charucoMarkerUIFrame, text="borderBits").grid(row=0, column=5, sticky = tk.NSEW) + + self.charucoMarkerDictionaryStr = tk.StringVar() + self.charucoMarkerChessboardSizeXStr = tk.StringVar() + self.charucoMarkerChessboardSizeXStr.set("16") + self.charucoMarkerChessboardSizeYStr = tk.StringVar() + self.charucoMarkerChessboardSizeYStr.set("9") + self.charucoMarkerSquareLengthStr = tk.StringVar() + self.charucoMarkerSquareLengthStr.set("0.09") + self.charucoMarkerMarkerLengthStr = tk.StringVar() + self.charucoMarkerMarkerLengthStr.set("0.07") + self.charucoMarkerBorderBitsStr = tk.StringVar() + self.charucoMarkerBorderBitsStr.set("1") + + self.charucoMarkerDictionaryMenue = tk.OptionMenu(self.charucoMarkerUIFrame, self.charucoMarkerDictionaryStr, "DICT_ARUCO_ORIGINAL", command = self.OnSelectCharucoMarkerDictionary) + self.charucoMarkerDictionaryMenue.grid(row=1, column=0, sticky = tk.NSEW) + tk.Entry(self.charucoMarkerUIFrame, textvariable=self.charucoMarkerChessboardSizeXStr).grid(row=1, column=1, sticky = tk.NSEW) + tk.Entry(self.charucoMarkerUIFrame, textvariable=self.charucoMarkerChessboardSizeYStr).grid(row=1, column=2, sticky = tk.NSEW) + tk.Entry(self.charucoMarkerUIFrame, textvariable=self.charucoMarkerSquareLengthStr).grid(row=1, column=3, sticky = tk.NSEW) + tk.Entry(self.charucoMarkerUIFrame, textvariable=self.charucoMarkerMarkerLengthStr).grid(row=1, column=4, sticky = tk.NSEW) + tk.Entry(self.charucoMarkerUIFrame, textvariable=self.charucoMarkerBorderBitsStr).grid(row=1, column=5, sticky = tk.NSEW) + + tk.Button(self.charucoMarkerUIFrame2, text = "Preview", command = self.OnPreviewCharucoMarker).grid(row=1, column=0, sticky = tk.NSEW) + tk.Button(self.charucoMarkerUIFrame2, text = "Save", command = self.OnSaveCharucoMarker).grid(row=1, column=1, sticky = tk.NSEW) + + tk.Label(self.charucoMarkerUIFrame2, text="Save opetions:").grid(row=0, column=2, sticky = tk.NSEW) + tk.Label(self.charucoMarkerUIFrame2, text="(set 0 as disable)").grid(row=1, column=2, sticky = tk.NSEW) + tk.Label(self.charucoMarkerUIFrame2, text="subSizeX").grid(row=0, column=3, sticky = tk.NSEW) + tk.Label(self.charucoMarkerUIFrame2, text="subSizeY").grid(row=0, column=4, sticky = tk.NSEW) + tk.Label(self.charucoMarkerUIFrame2, text="Divide to chunks, chunk sizeX").grid(row=2, column=3, sticky = tk.NSEW) + tk.Label(self.charucoMarkerUIFrame2, text="Divide to chunks, chunk sizeY").grid(row=2, column=4, sticky = tk.NSEW) + tk.Label(self.charucoMarkerUIFrame2, text="pageBorderX (Unit: Meter)").grid(row=0, column=5, sticky = tk.NSEW) + tk.Label(self.charucoMarkerUIFrame2, text="pageBorderY (Unit: Meter)").grid(row=0, column=6, sticky = tk.NSEW) + tk.Label(self.charucoMarkerUIFrame2, text="Border or page").grid(row=2, column=5, sticky = tk.NSEW) + tk.Label(self.charucoMarkerUIFrame2, text="Border or page").grid(row=2, column=6, sticky = tk.NSEW) + + self.charucoMarkerSaveSubSizeXStr = tk.StringVar() + self.charucoMarkerSaveSubSizeXStr.set("0") + self.charucoMarkerSaveSubSizeYStr = tk.StringVar() + self.charucoMarkerSaveSubSizeYStr.set("0") + self.charucoMarkerSavePageBorderXStr = tk.StringVar() + self.charucoMarkerSavePageBorderXStr.set("0.02") + self.charucoMarkerSavePageBorderYStr = tk.StringVar() + self.charucoMarkerSavePageBorderYStr.set("0.02") + + tk.Entry(self.charucoMarkerUIFrame2, textvariable=self.charucoMarkerSaveSubSizeXStr).grid(row=1, column=3, sticky = tk.NSEW) + tk.Entry(self.charucoMarkerUIFrame2, textvariable=self.charucoMarkerSaveSubSizeYStr).grid(row=1, column=4, sticky = tk.NSEW) + tk.Entry(self.charucoMarkerUIFrame2, textvariable=self.charucoMarkerSavePageBorderXStr).grid(row=1, column=5, sticky = tk.NSEW) + tk.Entry(self.charucoMarkerUIFrame2, textvariable=self.charucoMarkerSavePageBorderYStr).grid(row=1, column=6, sticky = tk.NSEW) + + self.charucoMarkerDictionaryMenue['menu'].delete(0, 'end') + for dictName in self.dictList: + self.charucoMarkerDictionaryMenue['menu'].add_command(label=dictName, command=tk._setit(self.charucoMarkerDictionaryStr, dictName, self.OnSelectCharucoMarkerDictionary)) + + self.OnSelectCharucoMarkerDictionary("DICT_ARUCO_ORIGINAL") + + def OnSelectArucoGridMarkerDictionary(self, pDictName): + self.arucoGridMarkerDictionaryStr.set(pDictName) + + def OnPreviewOrSaveArucoGridMarker(self, askSave = False): + try: + markersX = int(self.arucoGridMarkerMarkersXStr.get()) + markersY = int(self.arucoGridMarkerMarkersYStr.get()) + markerLength = float(self.arucoGridMarkerMarkerLengthStr.get()) + markerSeparation = float(self.arucoGridMarkerMarkerSeparationStr.get()) + borderBits = int(self.arucoGridMarkerBorderBitsStr.get()) + firstMarker = int(self.arucoGridMarkerFirstMarkerStr.get()) + dictionary = self.arucoGridMarkerDictionaryStr.get() + subSizeX = int(self.arucoGridMarkerSaveSubSizeXStr.get()) + subSizeY = int(self.arucoGridMarkerSaveSubSizeYStr.get()) + pageBorderX = float(self.arucoGridMarkerSavePageBorderXStr.get()) + pageBorderY = float(self.arucoGridMarkerSavePageBorderYStr.get()) + except ValueError as e: + warnings.warn(str(e)) + messagebox.showinfo("Error", "Enter invalid parameters") + return + except Exception as e: + warnings.warn(str(e)) + messagebox.showinfo("Error", "Fail to get parameters") + return + + # Preview + try: + dpi=self.VisDPI(((markersY * markerLength + (markersY - 1) * markerSeparation + pageBorderY * 2) * MarkerPrinter.ptPerMeter, (markersX * markerLength + (markersX - 1) * markerSeparation + pageBorderX * 2) * MarkerPrinter.ptPerMeter)) + tkImage = PIL.ImageTk.PhotoImage(image = MarkerPrinter.PreviewArucoGridMarkerImage(dictionary, (markersX, markersY), markerLength, markerSeparation, firstMarker, borderBits=borderBits, pageBorder = (pageBorderX, pageBorderY), dpi=dpi)) + self.arucoGridMarkerImageLabel.imgtk = tkImage + self.arucoGridMarkerImageLabel.config(image=tkImage) + except Exception as e: + warnings.warn(str(e)) + messagebox.showinfo("Error", "create marker failed") + return + + # Save + if(askSave): + MarkerPrinterGUI.__SaveMarker(MarkerPrinter.GenArucoGridMarkerImage, \ + dictionary, (markersX, markersY), markerLength, markerSeparation, firstMarker, borderBits=borderBits, subSize = (subSizeX, subSizeY), pageBorder = (pageBorderX, pageBorderY)) + + def OnPreviewArucoGridMarker(self): + self.OnPreviewOrSaveArucoGridMarker(askSave = False) + + def OnSaveArucoGridMarker(self): + self.OnPreviewOrSaveArucoGridMarker(askSave = True) + + def InitArucoGridMarkerTab(self): + self.arucoGridMarkerUIFrame = ttk.Frame(self.arucoGridMarkerTab) + self.arucoGridMarkerImageTab = ttk.Frame(self.arucoGridMarkerTab) + self.arucoGridMarkerUIFrame2 = ttk.Frame(self.arucoGridMarkerTab) + + self.arucoGridMarkerUIFrame.grid(row=0, column=0, sticky = tk.NSEW) + self.arucoGridMarkerImageTab.grid(row=1, column=0, sticky = tk.NSEW) + self.arucoGridMarkerUIFrame2.grid(row=2, column=0, sticky = tk.NSEW) + + self.arucoGridMarkerImageLabel = tk.Label(self.arucoGridMarkerImageTab) + self.arucoGridMarkerImageLabel.grid(row=0, column=0, sticky = tk.NSEW) + + tk.Label(self.arucoGridMarkerUIFrame, text="dictionary").grid(row=0, column=0, sticky = tk.NSEW) + tk.Label(self.arucoGridMarkerUIFrame, text="markersX").grid(row=0, column=1, sticky = tk.NSEW) + tk.Label(self.arucoGridMarkerUIFrame, text="markersY").grid(row=0, column=2, sticky = tk.NSEW) + tk.Label(self.arucoGridMarkerUIFrame, text="markerLength (Unit: Meter)").grid(row=0, column=3, sticky = tk.NSEW) + tk.Label(self.arucoGridMarkerUIFrame, text="markerSeparation (Unit: Meter)").grid(row=0, column=4, sticky = tk.NSEW) + tk.Label(self.arucoGridMarkerUIFrame, text="firstMarker").grid(row=0, column=5, sticky = tk.NSEW) + tk.Label(self.arucoGridMarkerUIFrame, text="borderBits").grid(row=0, column=6, sticky = tk.NSEW) + + self.arucoGridMarkerDictionaryStr = tk.StringVar() + self.arucoGridMarkerMarkersXStr = tk.StringVar() + self.arucoGridMarkerMarkersXStr.set("16") + self.arucoGridMarkerMarkersYStr = tk.StringVar() + self.arucoGridMarkerMarkersYStr.set("9") + self.arucoGridMarkerMarkerLengthStr = tk.StringVar() + self.arucoGridMarkerMarkerLengthStr.set("0.07") + self.arucoGridMarkerMarkerSeparationStr = tk.StringVar() + self.arucoGridMarkerMarkerSeparationStr.set("0.02") + self.arucoGridMarkerFirstMarkerStr = tk.StringVar() + self.arucoGridMarkerFirstMarkerStr.set("0") + self.arucoGridMarkerBorderBitsStr = tk.StringVar() + self.arucoGridMarkerBorderBitsStr.set("1") + + self.arucoGridMarkerDictionaryMenue = tk.OptionMenu(self.arucoGridMarkerUIFrame, self.arucoGridMarkerDictionaryStr, "DICT_ARUCO_ORIGINAL", command = self.OnSelectArucoGridMarkerDictionary) + self.arucoGridMarkerDictionaryMenue.grid(row=1, column=0, sticky = tk.NSEW) + tk.Entry(self.arucoGridMarkerUIFrame, textvariable=self.arucoGridMarkerMarkersXStr).grid(row=1, column=1, sticky = tk.NSEW) + tk.Entry(self.arucoGridMarkerUIFrame, textvariable=self.arucoGridMarkerMarkersYStr).grid(row=1, column=2, sticky = tk.NSEW) + tk.Entry(self.arucoGridMarkerUIFrame, textvariable=self.arucoGridMarkerMarkerLengthStr).grid(row=1, column=3, sticky = tk.NSEW) + tk.Entry(self.arucoGridMarkerUIFrame, textvariable=self.arucoGridMarkerMarkerSeparationStr).grid(row=1, column=4, sticky = tk.NSEW) + tk.Entry(self.arucoGridMarkerUIFrame, textvariable=self.arucoGridMarkerFirstMarkerStr).grid(row=1, column=5, sticky = tk.NSEW) + tk.Entry(self.arucoGridMarkerUIFrame, textvariable=self.arucoGridMarkerBorderBitsStr).grid(row=1, column=6, sticky = tk.NSEW) + + tk.Button(self.arucoGridMarkerUIFrame2, text = "Preview", command = self.OnPreviewArucoGridMarker).grid(row=1, column=0, sticky = tk.NSEW) + tk.Button(self.arucoGridMarkerUIFrame2, text = "Save", command = self.OnSaveArucoGridMarker).grid(row=1, column=1, sticky = tk.NSEW) + + tk.Label(self.arucoGridMarkerUIFrame2, text="Save opetions:").grid(row=0, column=2, sticky = tk.NSEW) + tk.Label(self.arucoGridMarkerUIFrame2, text="(set 0 as disable)").grid(row=1, column=2, sticky = tk.NSEW) + tk.Label(self.arucoGridMarkerUIFrame2, text="subSizeX").grid(row=0, column=3, sticky = tk.NSEW) + tk.Label(self.arucoGridMarkerUIFrame2, text="subSizeY").grid(row=0, column=4, sticky = tk.NSEW) + tk.Label(self.arucoGridMarkerUIFrame2, text="Divide to chunks, chunk sizeX").grid(row=2, column=3, sticky = tk.NSEW) + tk.Label(self.arucoGridMarkerUIFrame2, text="Divide to chunks, chunk sizeY").grid(row=2, column=4, sticky = tk.NSEW) + tk.Label(self.arucoGridMarkerUIFrame2, text="pageBorderX (Unit: Meter)").grid(row=0, column=5, sticky = tk.NSEW) + tk.Label(self.arucoGridMarkerUIFrame2, text="pageBorderY (Unit: Meter)").grid(row=0, column=6, sticky = tk.NSEW) + tk.Label(self.arucoGridMarkerUIFrame2, text="Border or page").grid(row=2, column=5, sticky = tk.NSEW) + tk.Label(self.arucoGridMarkerUIFrame2, text="Border or page").grid(row=2, column=6, sticky = tk.NSEW) + + self.arucoGridMarkerSaveSubSizeXStr = tk.StringVar() + self.arucoGridMarkerSaveSubSizeXStr.set("0") + self.arucoGridMarkerSaveSubSizeYStr = tk.StringVar() + self.arucoGridMarkerSaveSubSizeYStr.set("0") + self.arucoGridMarkerSavePageBorderXStr = tk.StringVar() + self.arucoGridMarkerSavePageBorderXStr.set("0.02") + self.arucoGridMarkerSavePageBorderYStr = tk.StringVar() + self.arucoGridMarkerSavePageBorderYStr.set("0.02") + + tk.Entry(self.arucoGridMarkerUIFrame2, textvariable=self.arucoGridMarkerSaveSubSizeXStr).grid(row=1, column=3, sticky = tk.NSEW) + tk.Entry(self.arucoGridMarkerUIFrame2, textvariable=self.arucoGridMarkerSaveSubSizeYStr).grid(row=1, column=4, sticky = tk.NSEW) + tk.Entry(self.arucoGridMarkerUIFrame2, textvariable=self.arucoGridMarkerSavePageBorderXStr).grid(row=1, column=5, sticky = tk.NSEW) + tk.Entry(self.arucoGridMarkerUIFrame2, textvariable=self.arucoGridMarkerSavePageBorderYStr).grid(row=1, column=6, sticky = tk.NSEW) + + self.arucoGridMarkerDictionaryMenue['menu'].delete(0, 'end') + for dictName in self.dictList: + self.arucoGridMarkerDictionaryMenue['menu'].add_command(label=dictName, command=tk._setit(self.arucoGridMarkerDictionaryStr, dictName, self.OnSelectArucoGridMarkerDictionary)) + + self.OnSelectArucoGridMarkerDictionary("DICT_ARUCO_ORIGINAL") + + def OnSelectArucoMarkerDictionary(self, pDictName): + self.arucoMarkerDictionaryStr.set(pDictName) + + def OnPreviewOrSaveArucoMarker(self, askSave = False): + try: + markerID = int(self.arucoMarkerMarkerIDStr.get()) + markerLength = float(self.arucoMarkerMarkerLengthStr.get()) + borderBits = int(self.arucoMarkerBorderBitsStr.get()) + dictionary = self.arucoMarkerDictionaryStr.get() + pageBorderX = float(self.arucoMarkerSavePageBorderXStr.get()) + pageBorderY = float(self.arucoMarkerSavePageBorderYStr.get()) + except ValueError as e: + warnings.warn(str(e)) + messagebox.showinfo("Error", "Enter invalid parameters") + return + except Exception as e: + warnings.warn(str(e)) + messagebox.showinfo("Error", "Fail to get parameters") + return + + # Preview + try: + dpi=self.VisDPI(((markerLength + pageBorderY * 2) * MarkerPrinter.ptPerMeter, (markerLength + pageBorderX * 2) * MarkerPrinter.ptPerMeter)) + tkImage = PIL.ImageTk.PhotoImage(image = MarkerPrinter.PreviewArucoMarkerImage(dictionary, markerID, markerLength, borderBits=borderBits, pageBorder = (pageBorderX, pageBorderY), dpi=dpi)) + self.arucoMarkerImageLabel.imgtk = tkImage + self.arucoMarkerImageLabel.config(image=tkImage) + except Exception as e: + warnings.warn(str(e)) + messagebox.showinfo("Error", "create marker failed") + return + + # Save + if(askSave): + MarkerPrinterGUI.__SaveMarker(MarkerPrinter.GenArucoMarkerImage, \ + dictionary, markerID, markerLength, borderBits=borderBits, pageBorder = (pageBorderX, pageBorderY)) + + def OnPreviewArucoMarker(self): + self.OnPreviewOrSaveArucoMarker(askSave = False) + + def OnSaveArucoMarker(self): + self.OnPreviewOrSaveArucoMarker(askSave = True) + + def InitArucoMarkerTab(self): + self.arucoMarkerUIFrame = ttk.Frame(self.arucoMarkerTab) + self.arucoMarkerImageTab = ttk.Frame(self.arucoMarkerTab) + self.arucoMarkerUIFrame2 = ttk.Frame(self.arucoMarkerTab) + + self.arucoMarkerUIFrame.grid(row=0, column=0, sticky = tk.NSEW) + self.arucoMarkerImageTab.grid(row=1, column=0, sticky = tk.NSEW) + self.arucoMarkerUIFrame2.grid(row=2, column=0, sticky = tk.NSEW) + + self.arucoMarkerImageLabel = tk.Label(self.arucoMarkerImageTab) + self.arucoMarkerImageLabel.grid(row=0, column=0, sticky = tk.NSEW) + + tk.Label(self.arucoMarkerUIFrame, text="dictionary").grid(row=0, column=0, sticky = tk.NSEW) + tk.Label(self.arucoMarkerUIFrame, text="markerID").grid(row=0, column=1, sticky = tk.NSEW) + tk.Label(self.arucoMarkerUIFrame, text="markerLength (Unit: Meter)").grid(row=0, column=2, sticky = tk.NSEW) + tk.Label(self.arucoMarkerUIFrame, text="borderBits").grid(row=0, column=3, sticky = tk.NSEW) + + self.arucoMarkerDictionaryStr = tk.StringVar() + self.arucoMarkerMarkerIDStr = tk.StringVar() + self.arucoMarkerMarkerIDStr.set("0") + self.arucoMarkerMarkerLengthStr = tk.StringVar() + self.arucoMarkerMarkerLengthStr.set("0.07") + self.arucoMarkerBorderBitsStr = tk.StringVar() + self.arucoMarkerBorderBitsStr.set("1") + + self.arucoMarkerDictionaryMenue = tk.OptionMenu(self.arucoMarkerUIFrame, self.arucoMarkerDictionaryStr, "DICT_ARUCO_ORIGINAL", command = self.OnSelectArucoMarkerDictionary) + self.arucoMarkerDictionaryMenue.grid(row=1, column=0, sticky = tk.NSEW) + tk.Entry(self.arucoMarkerUIFrame, textvariable=self.arucoMarkerMarkerIDStr).grid(row=1, column=1, sticky = tk.NSEW) + tk.Entry(self.arucoMarkerUIFrame, textvariable=self.arucoMarkerMarkerLengthStr).grid(row=1, column=2, sticky = tk.NSEW) + tk.Entry(self.arucoMarkerUIFrame, textvariable=self.arucoMarkerBorderBitsStr).grid(row=1, column=3, sticky = tk.NSEW) + + tk.Button(self.arucoMarkerUIFrame2, text = "Preview", command = self.OnPreviewArucoMarker).grid(row=0, column=0, sticky = tk.NSEW) + tk.Button(self.arucoMarkerUIFrame2, text = "Save", command = self.OnSaveArucoMarker).grid(row=0, column=1, sticky = tk.NSEW) + + tk.Label(self.arucoMarkerUIFrame2, text="Save opetions:").grid(row=0, column=2, sticky = tk.NSEW) + tk.Label(self.arucoMarkerUIFrame2, text="(set 0 as disable)").grid(row=1, column=2, sticky = tk.NSEW) + tk.Label(self.arucoMarkerUIFrame2, text="pageBorderX (Unit: Meter)").grid(row=0, column=3, sticky = tk.NSEW) + tk.Label(self.arucoMarkerUIFrame2, text="pageBorderY (Unit: Meter)").grid(row=0, column=4, sticky = tk.NSEW) + tk.Label(self.arucoMarkerUIFrame2, text="Border or page").grid(row=2, column=3, sticky = tk.NSEW) + tk.Label(self.arucoMarkerUIFrame2, text="Border or page").grid(row=2, column=4, sticky = tk.NSEW) + + self.arucoMarkerSavePageBorderXStr = tk.StringVar() + self.arucoMarkerSavePageBorderXStr.set("0.02") + self.arucoMarkerSavePageBorderYStr = tk.StringVar() + self.arucoMarkerSavePageBorderYStr.set("0.02") + + tk.Entry(self.arucoMarkerUIFrame2, textvariable=self.arucoMarkerSavePageBorderXStr).grid(row=1, column=3, sticky = tk.NSEW) + tk.Entry(self.arucoMarkerUIFrame2, textvariable=self.arucoMarkerSavePageBorderYStr).grid(row=1, column=4, sticky = tk.NSEW) + + self.arucoMarkerDictionaryMenue['menu'].delete(0, 'end') + for dictName in self.dictList: + self.arucoMarkerDictionaryMenue['menu'].add_command(label=dictName, command=tk._setit(self.arucoMarkerDictionaryStr, dictName, self.OnSelectArucoMarkerDictionary)) + + self.OnSelectArucoMarkerDictionary("DICT_ARUCO_ORIGINAL") + + def OnPreviewOrSaveChessMarker(self, askSave = False): + try: + sizeX = int(self.chessMarkerChessboardSizeXStr.get()) + sizeY = int(self.chessMarkerChessboardSizeYStr.get()) + squareLength = float(self.chessMarkerSquareLengthStr.get()) + subSizeX = int(self.chessMarkerSaveSubSizeXStr.get()) + subSizeY = int(self.chessMarkerSaveSubSizeYStr.get()) + pageBorderX = float(self.chessMarkerSavePageBorderXStr.get()) + pageBorderY = float(self.chessMarkerSavePageBorderYStr.get()) + except ValueError as e: + warnings.warn(str(e)) + messagebox.showinfo("Error", "Enter invalid parameters") + return + except Exception as e: + warnings.warn(str(e)) + messagebox.showinfo("Error", "Fail to get parameters") + return + + # Preview + try: + dpi=self.VisDPI(((sizeY * squareLength + pageBorderY * 2) * MarkerPrinter.ptPerMeter, (sizeX * squareLength + pageBorderX * 2) * MarkerPrinter.ptPerMeter)) + tkImage = PIL.ImageTk.PhotoImage(image = MarkerPrinter.PreviewChessMarkerImage((sizeX, sizeY), squareLength, pageBorder = (pageBorderX, pageBorderY), dpi=dpi)) + self.chessMarkerImageLabel.imgtk = tkImage + self.chessMarkerImageLabel.config(image=tkImage) + except Exception as e: + warnings.warn(str(e)) + messagebox.showinfo("Error", "create marker failed") + return + + # Save + if(askSave): + MarkerPrinterGUI.__SaveMarker(MarkerPrinter.GenChessMarkerImage, \ + (sizeX, sizeY), squareLength, subSize = (subSizeX, subSizeY), pageBorder = (pageBorderX, pageBorderY)) + + def OnPreviewChessMarker(self): + self.OnPreviewOrSaveChessMarker(askSave = False) + + def OnSaveChessMarker(self): + self.OnPreviewOrSaveChessMarker(askSave = True) + + def InitChessMarkerTab(self): + self.chessMarkerUIFrame = ttk.Frame(self.chessMarkerTab) + self.chessMarkerImageTab = ttk.Frame(self.chessMarkerTab) + self.chessMarkerUIFrame2 = ttk.Frame(self.chessMarkerTab) + + self.chessMarkerUIFrame.grid(row=0, column=0, sticky = tk.NSEW) + self.chessMarkerImageTab.grid(row=1, column=0, sticky = tk.NSEW) + self.chessMarkerUIFrame2.grid(row=2, column=0, sticky = tk.NSEW) + + self.chessMarkerImageLabel = tk.Label(self.chessMarkerImageTab) + self.chessMarkerImageLabel.grid(row=0, column=0, sticky = tk.NSEW) + + tk.Label(self.chessMarkerUIFrame, text="chessboardSizeX").grid(row=0, column=0, sticky = tk.NSEW) + tk.Label(self.chessMarkerUIFrame, text="chessboardSizeY").grid(row=0, column=1, sticky = tk.NSEW) + tk.Label(self.chessMarkerUIFrame, text="squareLength (Unit: Meter)").grid(row=0, column=2, sticky = tk.NSEW) + + self.chessMarkerChessboardSizeXStr = tk.StringVar() + self.chessMarkerChessboardSizeXStr.set("16") + self.chessMarkerChessboardSizeYStr = tk.StringVar() + self.chessMarkerChessboardSizeYStr.set("9") + self.chessMarkerSquareLengthStr = tk.StringVar() + self.chessMarkerSquareLengthStr.set("0.09") + + tk.Entry(self.chessMarkerUIFrame, textvariable=self.chessMarkerChessboardSizeXStr).grid(row=1, column=0, sticky = tk.NSEW) + tk.Entry(self.chessMarkerUIFrame, textvariable=self.chessMarkerChessboardSizeYStr).grid(row=1, column=1, sticky = tk.NSEW) + tk.Entry(self.chessMarkerUIFrame, textvariable=self.chessMarkerSquareLengthStr).grid(row=1, column=2, sticky = tk.NSEW) + + tk.Button(self.chessMarkerUIFrame2, text = "Preview", command = self.OnPreviewChessMarker).grid(row=1, column=0, sticky = tk.NSEW) + tk.Button(self.chessMarkerUIFrame2, text = "Save", command = self.OnSaveChessMarker).grid(row=1, column=1, sticky = tk.NSEW) + + tk.Label(self.chessMarkerUIFrame2, text="Save opetions:").grid(row=0, column=2, sticky = tk.NSEW) + tk.Label(self.chessMarkerUIFrame2, text="(set 0 as disable)").grid(row=1, column=2, sticky = tk.NSEW) + tk.Label(self.chessMarkerUIFrame2, text="subSizeX").grid(row=0, column=3, sticky = tk.NSEW) + tk.Label(self.chessMarkerUIFrame2, text="subSizeY").grid(row=0, column=4, sticky = tk.NSEW) + tk.Label(self.chessMarkerUIFrame2, text="Divide to chunks, chunk sizeX").grid(row=2, column=3, sticky = tk.NSEW) + tk.Label(self.chessMarkerUIFrame2, text="Divide to chunks, chunk sizeY").grid(row=2, column=4, sticky = tk.NSEW) + tk.Label(self.chessMarkerUIFrame2, text="pageBorderX (Unit: Meter)").grid(row=0, column=5, sticky = tk.NSEW) + tk.Label(self.chessMarkerUIFrame2, text="pageBorderY (Unit: Meter)").grid(row=0, column=6, sticky = tk.NSEW) + tk.Label(self.chessMarkerUIFrame2, text="Border or page").grid(row=2, column=5, sticky = tk.NSEW) + tk.Label(self.chessMarkerUIFrame2, text="Border or page").grid(row=2, column=6, sticky = tk.NSEW) + + self.chessMarkerSaveSubSizeXStr = tk.StringVar() + self.chessMarkerSaveSubSizeXStr.set("0") + self.chessMarkerSaveSubSizeYStr = tk.StringVar() + self.chessMarkerSaveSubSizeYStr.set("0") + self.chessMarkerSavePageBorderXStr = tk.StringVar() + self.chessMarkerSavePageBorderXStr.set("0.02") + self.chessMarkerSavePageBorderYStr = tk.StringVar() + self.chessMarkerSavePageBorderYStr.set("0.02") + + tk.Entry(self.chessMarkerUIFrame2, textvariable=self.chessMarkerSaveSubSizeXStr).grid(row=1, column=3, sticky = tk.NSEW) + tk.Entry(self.chessMarkerUIFrame2, textvariable=self.chessMarkerSaveSubSizeYStr).grid(row=1, column=4, sticky = tk.NSEW) + tk.Entry(self.chessMarkerUIFrame2, textvariable=self.chessMarkerSavePageBorderXStr).grid(row=1, column=5, sticky = tk.NSEW) + tk.Entry(self.chessMarkerUIFrame2, textvariable=self.chessMarkerSavePageBorderYStr).grid(row=1, column=6, sticky = tk.NSEW) + + def Update(self): + time.sleep(0) + self.window.after(self.delay, self.Update) + + def __init__(self, pDelay=15, pDisplayShape=(int(400), int(1200))): + self.delay = pDelay + self.displayShape = pDisplayShape + + self.dictList = MarkerPrinter.arucoDictBytesList.keys() + + # GUI + self.window = tk.Tk() + self.notebook = ttk.Notebook(self.window) + self.notebook.grid(row=0, column=0, sticky = tk.NSEW) + + self.window.title("MarkerPrinterGUI") + self.window.config(cursor="arrow") + self.window.protocol("WM_DELETE_WINDOW", self.OnCloseWindow) + + # Menues + self.menu = tk.Menu(self.window) + self.helpMenu = tk.Menu(self.menu, tearoff=0) + self.menu.add_cascade(label="Help", menu=self.helpMenu) + self.helpMenu.add_command(label="Github", command=self.OnShowingHelpGithub) + self.helpMenu.add_command(label="DEBUG_LINE_MODE", command=self.On_DEBUG_LINE_MODE) + self.helpMenu.add_command(label="DEBUG_BLOCK_MODE", command=self.On_DEBUG_BLOCK_MODE) + self.helpMenu.add_command(label="CLOSE_DEBUG_MODE", command=self.On_CLOSE_DEBUG_MODE) + self.window.config(menu=self.menu) + + self.charucoMarkerTab = ttk.Frame(self.notebook) + self.arucoMarkerTab = ttk.Frame(self.notebook) + self.arucoGridMarkerTab = ttk.Frame(self.notebook) + self.chessMarkerTab = ttk.Frame(self.notebook) + + self.notebook.add(self.charucoMarkerTab, text='ChArUco Marker') + self.notebook.add(self.arucoMarkerTab, text='ArUco Marker') + self.notebook.add(self.arucoGridMarkerTab, text='ArUcoGrid Marker') + self.notebook.add(self.chessMarkerTab, text='Chessboard Marker') + + self.InitCharucoMarkerTab() + self.InitArucoMarkerTab() + self.InitArucoGridMarkerTab() + self.InitChessMarkerTab() + + self.Update() + self.window.mainloop() + + def On_DEBUG_LINE_MODE(self): + messagebox.showinfo("Note", "You enabled the debug mode: \"LINE\"") + MarkerPrinter.debugMode = "LINE" + + def On_DEBUG_BLOCK_MODE(self): + messagebox.showinfo("Note", "You enabled the debug mode: \"BLOCK\"") + MarkerPrinter.debugMode = "BLOCK" + + def On_CLOSE_DEBUG_MODE(self): + messagebox.showinfo("Note", "You closed the debug mode") + MarkerPrinter.debugMode = None + +if __name__ == '__main__': + MarkerPrinterGUI() diff --git a/modules/aruco/misc/pattern_generator/README.md b/modules/aruco/misc/pattern_generator/README.md new file mode 100644 index 000000000..994dc9311 --- /dev/null +++ b/modules/aruco/misc/pattern_generator/README.md @@ -0,0 +1,68 @@ +# OpenCVMarkerPrinter + +## Description +This small app can save some commonly used opencv markers such as ArUco, ArUcoGrid, Chessboard and ChArUco to vector graphics file. **Supported vector graphics file format: .svg, .pdf and .ps.** + + + +### Dependencies +#### MarkerPrinter + * numpy + * PIL(Pillow, for image processing) + * cairo(for drawing vector graphic) + * cairosvg(for svg to png) + +#### MarkerPrinterGUI + * tkinter(for GUI) + +## Tutorial +#### GUI +``` +python MarkerPrinterGUI.py +``` + +You can switch ArUco, ArUcoGrid, Chessboard and ChArUco mode at the GUI tab, then you can select dictionary from the GUI menu and modify board shape, marker size, border width... etc. at the GUI entry, finally click the preview or save button to show the marker image on the GUI window or save it to file. + +#### Command-Line +##### Print help +``` +python MarkerPrinter.py +``` + +##### Print predefined dictionary list +``` +python MarkerPrinter.py --list_dictionary +``` + +##### Save chessboard +``` +python MarkerPrinter.py --chess --file "./chess.pdf" --size_x 16 --size_y 9 --square_length 0.09 +``` + +##### Save ArUco +``` +python MarkerPrinter.py --aruco --file "./aruco.pdf" --dictionary DICT_ARUCO_ORIGINAL --marker_length 0.07 --marker_id 0 --border_bits 1 +``` + +##### Save ArUco Grid +``` +python MarkerPrinter.py --aruco_grid --file "./aruco_grid.pdf" --dictionary DICT_ARUCO_ORIGINAL --size_x 16 --size_y 9 --marker_length 0.07 --marker_separation 0.02 --first_marker 0 --border_bits 1 +``` + +##### Save ChArUco +``` +python MarkerPrinter.py --charuco --file "./charuco.pdf" --dictionary DICT_ARUCO_ORIGINAL --size_x 16 --size_y 9 --square_length 0.09 --marker_length 0.07 --border_bits 1 +``` + +## Useful Options: +### Divde output to chunks +If you are using consumer level printer, you will suffer from not able printing too large marker, so just set chunks shape at the GUI subSize entry before saving the marker to files, it will divide output marker to chunks. If you are using command-line interface, just add --sub_size_x x --sub_size_y y as parameters. + +### Page border +If you are printing the image directly, you will need add page border to protect the marker, so just set page border at the GUI pageBorder entry before saving the marker to files. If you are using command-line interface, just add --page_border_x x --page_border_y y as parameters. + +### Generate aruco data: +Although there is a built-in aruco dictionary data, but if you want to update the dictionary(If aruco update predefined dictionary list), just install opencv-python and opencv-contrib-python, and than run +``` +python MarkerPrinter.py --generate arucoDictBytesList.npz +``` diff --git a/modules/aruco/misc/pattern_generator/arucoDictBytesList.npz b/modules/aruco/misc/pattern_generator/arucoDictBytesList.npz new file mode 100644 index 0000000000000000000000000000000000000000..64bcbc96cb51cb006a8347d850b6ef9eb3a22bd8 GIT binary patch literal 137389 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 literal 0 HcmV?d00001 diff --git a/modules/aruco/misc/pattern_generator/doc/images/MarkerPrinterGUI.jpg b/modules/aruco/misc/pattern_generator/doc/images/MarkerPrinterGUI.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4aed275565ae5b7e24f3d3850dfdac1454e9b690 GIT binary patch literal 157076 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 OpenCV 3.0