Skip to content

Commit

Permalink
Add files via upload
Browse files Browse the repository at this point in the history
  • Loading branch information
umraan-xm authored Mar 25, 2023
1 parent 6aaeb14 commit f31f4f1
Show file tree
Hide file tree
Showing 2 changed files with 127 additions and 0 deletions.
51 changes: 51 additions & 0 deletions Preprocessing/expand.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
import cv2
import numpy as np
import os


def show_image(img):
cv2.imshow("preview", img)
cv2.waitKey(0)
cv2.destroyAllWindows()


def rotate_symbol(img, angle):
_, img_binary = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY_INV)
h, w = img.shape[:2]

center = (w / 2, h / 2)

rot_matrix = cv2.getRotationMatrix2D(center, angle, 1.0)
img_rotated = cv2.warpAffine(img_binary, rot_matrix, (w, h))

img_final = cv2.bitwise_not(img_rotated)

return img_final
# show_image(img_final)


def expand_dataset(folder):
images = os.listdir(folder)
num_augmented = 6000 - len(images)
print(num_augmented)
i = 0

for filename in images:
img = cv2.imread(os.path.join(folder, filename), cv2.IMREAD_GRAYSCALE)

img_rotate_10 = rotate_symbol(img, 10)
# img_flip_lr = cv2.flip(img, 1)
img_rotate_180 = cv2.rotate(img, cv2.ROTATE_180)

# print(folder + '/augmented_' + str(i) + '_flip_lr.jpg')
# cv2.imwrite(folder + '/augmented_' + str(i) + '_flip_lr.jpg', img_flip_lr)
cv2.imwrite(folder + '/augmented_' + str(i) + '_rotate_180.jpg', img_rotate_180)
cv2.imwrite(folder + '/augmented_' + str(i) + '_rotate_10.jpg', img_rotate_10)
i += 2

if i > num_augmented+2:
break


if __name__ == '__main__':
expand_dataset("../Data/int")
76 changes: 76 additions & 0 deletions Preprocessing/solver_data.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
from keras.datasets import mnist
import cv2
import numpy as np
import pandas as pd
import os


def show_image(img):
cv2.imshow("preview", img)
cv2.waitKey(0)
cv2.destroyAllWindows()


def load_symbol_dataset(folder):
data = list()
for filename in os.listdir(folder):
img = cv2.imread(os.path.join(folder, filename), cv2.IMREAD_GRAYSCALE)
img = ~img
if img is not None:
_, thresh = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY)
# show_image(thresh)

img_resize = cv2.resize(thresh, (28, 28))
# show_image(img_resize)

_, img_resize_thresh = cv2.threshold(img_resize, 30, 255, cv2.THRESH_BINARY)
# show_image(img_resize_thresh)
#
# kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (2, 2))
# img_dilated = cv2.dilate(img_resize_thresh, kernel, iterations=1)
# show_image(img_dilated)

img_resize_thresh = np.reshape(img_resize_thresh, (784, ))

data.append(img_resize_thresh)
return data

# '+' - 10
data_plus = load_symbol_dataset('../Data/+')
data_plus = np.insert(data_plus, 784, 10, axis=1)
print(data_plus.shape)

# '-' - 11
data_minus = load_symbol_dataset('../Data/-')
data_minus = np.insert(data_minus, 784, 11, axis=1)
print(data_minus.shape)

# '*' - 12
data_times = load_symbol_dataset('../Data/times')
data_times = np.insert(data_times, 784, 12, axis=1)
print(data_times.shape)

# '=' - 13
data_equal = load_symbol_dataset('../Data/=')
data_equal = np.insert(data_equal, 784, 13, axis=1)
print(data_equal.shape)

# 'x' = 14
data_x = load_symbol_dataset('../Data/X')
data_x = np.insert(data_x, 784, 14, axis=1)
print(data_x.shape)

# 'y' = 15
data_y = load_symbol_dataset('../Data/Y')
data_y = np.insert(data_y, 784, 15, axis=1)
print(data_y.shape)

train_data = np.concatenate((data_plus, data_minus, data_times, data_equal, data_x, data_y))

for num in range(10):
data_num = load_symbol_dataset(f'../Data/{num}')
data_num = np.insert(data_num, 784, num, axis=1)
train_data = np.concatenate((train_data, data_num))

df = pd.DataFrame(train_data, index=None)
df.to_csv('solver_train_data.csv', index=False)

0 comments on commit f31f4f1

Please sign in to comment.