#23 create tool path from image

This commit is contained in:
Ian
2019-02-06 11:50:25 -05:00
parent d6a891cdbb
commit a3160c6643
2 changed files with 31 additions and 25 deletions

35
main.py
View File

@@ -1,14 +1,21 @@
from utils.path import path from utils.path import path, scanHorizontal, scanVertical
from utils.pbmformator import formatPbm from utils.pbmformator import formatPbm
from utils.savetofile import matrixToFile from utils.savetofile import matrixToFile
if __name__ == "__main__": if __name__ == "__main__":
# Usage example # Usage example
matrixToFile(formatPbm('resources/original/test1ascii.pbm'), 'resources/reformatted/test1.csv') matrixToFile(formatPbm('resources/original/test1ascii.pbm'), 'resources/reformatted/test1.csv')
#matrixToFile(scanHorizontal(formatPbm('resources/original/test1ascii.pbm'), 4), 'resources/reformatted/testhori.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(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/test1ascii.pbm'), 4),4),4), 'resources/reformatted/testfinal.csv')
matrixToFile(path(formatPbm('resources/original/imagestest-11.pbm'), 4), 'resources/reformatted/testimagestest-11.csv') # matrixToFile(path(formatPbm('resources/original/imagestest-11.pbm'), 4), 'resources/reformatted/testimagestest-11.csv')
matrixToFile(path(formatPbm('resources/original/imagestest-22.pbm'), 4), 'resources/reformatted/testimagestest-22.csv') # matrixToFile(path(formatPbm('resources/original/imagestest-22.pbm'), 4), 'resources/reformatted/testimagestest-22.csv')
matrixToFile(path(formatPbm('resources/original/imagestest-33.pbm'), 4), 'resources/reformatted/testimagestest-33.csv') # matrixToFile(path(formatPbm('resources/original/imagestest-33.pbm'), 4), 'resources/reformatted/testimagestest-33.csv')
matrixToFile(path(formatPbm('resources/original/test100x100_1.pbm'), 4), 'resources/reformatted/test100x100.csv')
matrixToFile(scanVertical(formatPbm('resources/original/test100x100_1.pbm'), 4), 'resources/reformatted/test100x100V.csv')
matrixToFile(scanHorizontal(formatPbm('resources/original/test100x100_1.pbm'), 4), 'resources/reformatted/test100x100H.csv')
matrixToFile(scanVertical(scanHorizontal(formatPbm('resources/original/test100x100_1.pbm'), 4) ,4), 'resources/reformatted/test100x100VH.csv')

View File

@@ -11,13 +11,13 @@ def scanHorizontal(image, rTool):
for line in range(height): for line in range(height):
for column in range(width): for column in range(width):
if image[line][column] == 1 and image[line][column - 1] == 0: if image[line][column] == 1 and image[line][column - 1] != 1:
for px in range(2 * rTool): for px in range(2 * rTool + 1):
if image[line - rTool + px][column - rTool] == 0: if image[line - rTool + px][column - rTool] == 0:
image[line - rTool + px][column - rTool] = 2 image[line - rTool + px][column - rTool] = 2
if image[line][column] == 1 and image[line][column + 1] == 0: if image[line][column] == 1 and image[line][column + 1] != 1:
for px in range(2 * rTool): for px in range(2 * rTool + 1):
if image[line - rTool + px][column + rTool] == 0: if image[line - rTool + px][column + rTool] == 0:
image[line - rTool + px][column + rTool] = 2 image[line - rTool + px][column + rTool] = 2
@@ -37,13 +37,13 @@ def scanVertical(image, rTool):
for line in range(height): for line in range(height):
for column in range(width): for column in range(width):
if image[line][column] == 1 and image[line - 1][column] == 0: if image[line][column] == 1 and image[line - 1][column] != 1:
for px in range(2 * rTool): for px in range(2 * rTool + 1):
if image[line - rTool][column - rTool + px] == 0: if image[line - rTool][column - rTool + px] == 0:
image[line - rTool][column - rTool + px] = 2 image[line - rTool][column - rTool + px] = 2
elif image[line][column] == 1 and image[line + 1][column] == 0: if image[line][column] == 1 and image[line + 1][column] != 1:
for px in range(2 * rTool): for px in range(2 * rTool + 1):
if image[line + rTool][column - rTool + px] == 0: if image[line + rTool][column - rTool + px] == 0:
image[line + rTool][column - rTool + px] = 2 image[line + rTool][column - rTool + px] = 2
@@ -56,7 +56,6 @@ def twoRemoving(image, rTool):
:return: removes unnecessary twos to leave a path of only one pixel large :return: removes unnecessary twos to leave a path of only one pixel large
""" """
rTool -= 1
width = len(image[0]) width = len(image[0])
height = len(image) height = len(image)
@@ -64,8 +63,8 @@ def twoRemoving(image, rTool):
for column in range(width): for column in range(width):
if image[line][column] == 1: if image[line][column] == 1:
for px in range(2 * rTool + 1): for px in range(1, 2 * rTool):
for pixel in range(2*rTool + 1): for pixel in range(1, 2*rTool):
if image[line - rTool + px][column - rTool + pixel] == 2: if image[line - rTool + px][column - rTool + pixel] == 2:
image[line - rTool + px][column - rTool + pixel] = 0 image[line - rTool + px][column - rTool + pixel] = 0