36 lines
868 B
Python
36 lines
868 B
Python
import argparse
|
|
import cv2
|
|
from pallete_schema import PalleteSchema
|
|
|
|
from os.path import isfile, realpath, basename, dirname, splitext, join
|
|
|
|
parser = argparse.ArgumentParser(description='Separate an image into most similar colors specified')
|
|
|
|
parser.add_argument('input', type=str, help='Input image to extract the pallete from')
|
|
|
|
class Pallete :
|
|
input = ''
|
|
output = ''
|
|
image = None
|
|
|
|
def __init__ (self, args) :
|
|
if isfile(args.input) :
|
|
self.input = realpath(args.input)
|
|
else :
|
|
print(f'File {self.input} does not exist')
|
|
exit(1)
|
|
self.set_output()
|
|
|
|
def set_output (self) :
|
|
dir = dirname(self.input)
|
|
stem = splitext(basename(self.input))[0]
|
|
self.output = join(dir, f'{stem}.json')
|
|
print(f'Writing to {stem}.json')
|
|
|
|
def process (self) :
|
|
image = cv2.imread(self.input)
|
|
|
|
if __name__ == "__main__" :
|
|
args = parser.parse_args()
|
|
Pallete(args)
|