commit 0c1329c5c09e2396506b4fd7c2e611faa9582b73 Author: RomanNum3ral Date: Sun Oct 27 14:31:31 2024 +0000 Upload files to "/" diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ec7e3ae --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.venv/ +out_dir/ \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..5713579 --- /dev/null +++ b/README.md @@ -0,0 +1,6 @@ +# Leaf Image Converter + +Converts leaf images into the format required for multi class semantic segmentation. + +## Instructions +run `python main.py input_directory ouput_directory` \ No newline at end of file diff --git a/main.py b/main.py new file mode 100644 index 0000000..e528556 --- /dev/null +++ b/main.py @@ -0,0 +1,38 @@ +import argparse +import os + +import numpy as np + +import cv2 +import glob + + +parser = argparse.ArgumentParser() +parser.add_argument('input', type=str, default='', help='path to input directory') +parser.add_argument('output', type=str, default='', help='path to output directory') + +args = parser.parse_args() + + +target = args.input +out_dir = args.output +targets = glob.glob(os.path.join(target+'*.png')) + +for target in targets: + img = cv2.imread(target) + r = img[:,:,2] == 255 + g = img[:,:,1] == 255 + b = img[:,:,1] == 255 + mask1 = np.logical_and(r, g, b) + mask2 = np.logical_and(r, np.logical_not(g),np.logical_not(b)) + out = np.zeros(np.shape(mask1)) + out[mask1] = 1 + out[mask2] = 2 + cv2.imwrite(os.path.join(out_dir,os.path.basename(target)), out) + +# for x in glob.glob(os.pathout_dir+'/*.png'): +# test = cv2.imread(x,0) +# print(test.shape) +# pylab.imshow(test) +# pylab.show() +