diff --git a/images/Example/White_Plain_In_White_Sky/Laplacian.py b/images/Example/White_Plain_In_White_Sky/Laplacian.py new file mode 100644 index 0000000000000000000000000000000000000000..aa4b7cefcd6febec7150b2e9cc73e59abcbee2c2 --- /dev/null +++ b/images/Example/White_Plain_In_White_Sky/Laplacian.py @@ -0,0 +1,40 @@ +from tokenize import String + +from skimage import io + +from pixel import * + + +class Editor(object): + + def __init__(self, origin_path: String, edit_path: String): + """ + This class is the editor which edits a given image and stores a new one. + + :param origin_path: The original image which should be edited. + :param edit_path: The edited image which should be stored. + """ + self.image_path = origin_path + self.edit_path = edit_path + + def do_convolution_with(self, option: String) -> None: + """ + This method iterates over the image and changes each pixel by a given method. + Notice, that the image must be a RGB-image (MxNx3). + + :param option: The options defined in FILTER. + :return: None + """ + image = io.imread(fname=self.image_path) + height, width, _ = image.shape # len(image), len(image[0, 0:, 0:]) wont work for .png-images. + edited_image = np.zeros((height, width, 3), dtype=np.float64) + edited_pixels = 0 + for v in range(height): + for u in range(width): + pixel = Pixel(image, v, u) + edited_image[v, u] = pixel.filter_with(option) + edited_pixels += 1 + if edited_pixels % 10000 == 0: + print('Finished with: ' + str(edited_pixels) + ' of ' + str(width * height)) + + io.imsave(arr=edited_image, fname=self.edit_path)