From e2bc465bb9feb48fcccfa5dfbe877ec1690bf2ef Mon Sep 17 00:00:00 2001 From: Ian Date: Mon, 4 Feb 2019 16:41:18 -0500 Subject: [PATCH] #23 create tool path first working version --- main.py | 10 ++++++++- utils/path.py | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 utils/path.py diff --git a/main.py b/main.py index 3c60ea3..0f26a38 100644 --- a/main.py +++ b/main.py @@ -1,6 +1,14 @@ +from utils.path import scanHorizontal, scanVertical, twoTooMany from utils.pbmformator import formatPbm from utils.savetofile import matrixToFile if __name__ == "__main__": # Usage example - matrixToFile(formatPbm('resources/original/test1ascii.pbm'), 'resources/reformatted/test1.csv') \ No newline at end of file + matrixToFile(formatPbm('resources/original/test1ascii.pbm'), 'resources/reformatted/test1.csv') + + #matrixToFile(scanHorizontal(formatPbm('resources/original/test1ascii.pbm'), 4), 'resources/reformatted/testhori.csv') + #matrixToFile(scanVertical(formatPbm('resources/original/test1ascii.pbm'), 4 ), 'resources/reformatted/testvert.csv') + #matrixToFile(twoTooMany(scanVertical(scanHorizontal(formatPbm('resources/original/test1ascii.pbm'), 4),4),4), 'resources/reformatted/testfinal.csv') + matrixToFile(twoTooMany(scanVertical(scanHorizontal(formatPbm('resources/original/imagestest-11.pbm'), 4),4),4), 'resources/reformatted/testimagestest-11.csv') + matrixToFile(twoTooMany(scanVertical(scanHorizontal(formatPbm('resources/original/imagestest-22.pbm'), 4),4),4), 'resources/reformatted/testimagestest-22.csv') + matrixToFile(twoTooMany(scanVertical(scanHorizontal(formatPbm('resources/original/imagestest-33.pbm'), 4),4),4), 'resources/reformatted/testimagestest-33.csv') diff --git a/utils/path.py b/utils/path.py new file mode 100644 index 0000000..f94107c --- /dev/null +++ b/utils/path.py @@ -0,0 +1,59 @@ +def scanHorizontal(image, rTool): + + width = len(image[0]) + height = len(image) + + for line in range(height): + for column in range(width): + + if image[line][column] == 1 and image[line][ column - 1] == 0: + for px in range(2 * rTool): + if image[line - rTool + px][column - rTool] == 0: + image[line - rTool + px][column - rTool] = 2 + + if image[line][column] == 1 and image[line][ column + 1] == 0: + for px in range(2 * rTool): + if image[line - rTool + px][column + rTool] == 0: + image[line - rTool + px][column + rTool] = 2 + + return image + + +def scanVertical(image, rTool): + + width = len(image[0]) + height = len(image) + + for line in range(height): + for column in range(width): + + if image[line][column] == 1 and image[line - 1][ column] == 0: + for px in range(2 * rTool): + if image[line - rTool][column - rTool + px] == 0: + image[line - rTool][column - rTool + px] = 2 + + elif image[line][column] == 1 and image[line + 1][column] == 0: + for px in range(2 * rTool): + if image[line + rTool][column - rTool + px] == 0: + image[line + rTool][column - rTool + px] = 2 + + return image + +def twoRemoving(image, rTool): + + rTool -= 1 + width = len(image[0]) + height = len(image) + + for line in range(height): + for column in range(width): + + if image[line][column] == 1: + for px in range(2 * rTool + 1): + if image[line - rTool + px][column] == 2: + image[line - rTool + px][column] = 0 + if image[line][column - rTool + px] == 2: + image[line][column - rTool + px] = 0 + + return image +