def retrain(im1, im2): fp1 = open('im1.png', 'wb') fp1.write(base64.b64decode(im1)) fp1.close() fp2 = open('im2.png', 'wb') fp2.write(base64.b64decode(im2)) fp2.close() img1 = Image.open('im1.png') img1.load() data1 = np.asarray(img1, dtype="int32") img2 = Image.open('im2.png') img2.load() data2 = np.asarray(img2, dtype="int32") data1 = np.array(data1) data2 = np.array(data1) RESULT = np.copy(data2) ORIGINAL = np.copy(data1) [numRow, numCol] = RESULT.shape for x in range(numRow): dfs_iterative(RESULT, x, 0) dfs_iterative(RESULT, x, numCol - 1) for y in range(numCol): dfs_iterative(RESULT, 0, y) dfs_iterative(RESULT, numRow - 1, y) train = [] target = [] tile_size = 16 # send this to configuration the 16 for x in range(0, numRow - tile_size + 1, tile_size): for y in range(0, numCol - tile_size + 1, tile_size): temp = RESULT[x:x + tile_size, y:y + tile_size] if -1 not in temp: train.append( (normalize(ORIGINAL[x:x + tile_size, y:y + tile_size])).transpose().flatten()) if 0 in temp and 1 in temp: target.append(1) else: target.append(0) print(np.array(train).shape) print(np.array(target).shape) np.savetxt("fooI.csv", np.array(train), delimiter=",") np.savetxt("fooO.csv", np.array(target), delimiter=",")
def retrain(im1, im2): fp1 = open('im1.png', 'wb') fp1.write(base64.b64decode(im1)) fp1.close() fp2 = open('im2.png', 'wb') fp2.write(base64.b64decode(im2)) fp2.close() img1 = Image.open('im1.png') img1.load() data1 = np.asarray( img1, dtype="int32") img2 = Image.open('im2.png') img2.load() data2 = np.asarray( img2, dtype="int32") data1 = np.array(data1) data2 = np.array(data1) RESULT = np.copy(data2) ORIGINAL = np.copy(data1) [numRow, numCol] = RESULT.shape for x in range(numRow): dfs_iterative(RESULT, x, 0) dfs_iterative(RESULT, x, numCol - 1) for y in range(numCol): dfs_iterative(RESULT, 0, y) dfs_iterative(RESULT, numRow - 1, y) train = [] target = [] tile_size = 16 # send this to configuration the 16 for x in range(0, numRow - tile_size + 1, tile_size): for y in range(0, numCol - tile_size + 1, tile_size): temp = RESULT[x:x + tile_size, y:y + tile_size] if -1 not in temp: train.append((normalize(ORIGINAL[x:x + tile_size, y:y + tile_size])).transpose().flatten()) if 0 in temp and 1 in temp: target.append(1) else: target.append(0) print(np.array(train).shape) print(np.array(target).shape) np.savetxt("fooI.csv", np.array(train), delimiter=",") np.savetxt("fooO.csv", np.array(target), delimiter=",")
def test_normalize(self): test = [[4, 59, 102, 85, 49, 65, 48, 85], [52, 58, 69, 70, 50, 97, 85, 63], [35, 46, 57, 84, 67, 42, 77, 67], [23, 62, 46, 79, 63, 84, 72, 88], [5, 16, 46, 56, 72, 57, 93, 80], [0, 15, 8, 22, 60, 54, 50, 52], [0, 0, 0, 16, 27, 15, 37, 33], [0, 0, 14, 2, 12, 1, 8, 19]] answer = [[ -0.04613047, 0.01521417, 0.06317451, 0.04421345, 0.0040606, 0.02190631, 0.00294524, 0.04421345 ], [ 0.00740667, 0.01409881, 0.02636774, 0.02748309, 0.00517595, 0.05759773, 0.04421345, 0.01967559 ], [ -0.0115544, 0.00071453, 0.01298345, 0.04309809, 0.02413702, -0.0037469, 0.03529059, 0.02413702 ], [ -0.02493868, 0.01856024, 0.00071453, 0.0375213, 0.01967559, 0.04309809, 0.02971381, 0.04755952 ], [ -0.04501511, -0.03274618, 0.00071453, 0.01186809, 0.02971381, 0.01298345, 0.0531363, 0.03863666 ], [ -0.05059189, -0.03386154, -0.04166904, -0.02605404, 0.01632952, 0.00963738, 0.00517595, 0.00740667 ], [ -0.05059189, -0.05059189, -0.05059189, -0.03274618, -0.02047726, -0.03386154, -0.00932369, -0.01378511 ], [ -0.05059189, -0.05059189, -0.0349769, -0.04836118, -0.03720761, -0.04947654, -0.04166904, -0.02940011 ]] np.testing.assert_array_almost_equal(normalize(np.array(test)), np.array(answer))
def test_normalize(self): test = [[4, 59, 102, 85, 49, 65, 48, 85], [52, 58, 69, 70, 50, 97, 85, 63], [35, 46, 57, 84, 67, 42, 77, 67], [23, 62, 46, 79, 63, 84, 72, 88], [5, 16, 46, 56, 72, 57, 93, 80], [0, 15, 8, 22, 60, 54, 50, 52], [0, 0, 0, 16, 27, 15, 37, 33], [0, 0, 14, 2, 12, 1, 8, 19]] answer = [[-0.04613047, 0.01521417, 0.06317451, 0.04421345, 0.0040606, 0.02190631, 0.00294524, 0.04421345], [0.00740667, 0.01409881, 0.02636774, 0.02748309, 0.00517595, 0.05759773, 0.04421345, 0.01967559], [-0.0115544, 0.00071453, 0.01298345, 0.04309809, 0.02413702, -0.0037469, 0.03529059, 0.02413702], [-0.02493868, 0.01856024, 0.00071453, 0.0375213, 0.01967559, 0.04309809, 0.02971381, 0.04755952], [-0.04501511, -0.03274618, 0.00071453, 0.01186809, 0.02971381, 0.01298345, 0.0531363, 0.03863666], [-0.05059189, -0.03386154, -0.04166904, -0.02605404, 0.01632952, 0.00963738, 0.00517595, 0.00740667], [-0.05059189, -0.05059189, -0.05059189, -0.03274618, -0.02047726, -0.03386154, -0.00932369, -0.01378511], [-0.05059189, -0.05059189, -0.0349769, -0.04836118, -0.03720761, -0.04947654, -0.04166904, -0.02940011]] np.testing.assert_array_almost_equal(normalize(np.array(test)), np.array(answer))