|
@@ -1,13 +1,23 @@
|
|
|
+# main imports
|
|
|
import os
|
|
|
+import numpy as np
|
|
|
|
|
|
+# image processing imports
|
|
|
+from ipfml.processing import transform
|
|
|
from ipfml.processing import reconstruction
|
|
|
+from ipfml.filters import convolution, kernels
|
|
|
+from ipfml import utils
|
|
|
+
|
|
|
+from PIL import Image
|
|
|
+
|
|
|
|
|
|
# Transformation class to store transformation method of image and get usefull information
|
|
|
class Transformation():
|
|
|
|
|
|
- def __init__(self, _transformation, _param):
|
|
|
+ def __init__(self, _transformation, _param, _size):
|
|
|
self.transformation = _transformation
|
|
|
self.param = _param
|
|
|
+ self.size = _size
|
|
|
|
|
|
def getTransformedImage(self, img):
|
|
|
|
|
@@ -23,6 +33,20 @@ class Transformation():
|
|
|
n_components = self.param
|
|
|
data = reconstruction.fast_ica(img, n_components)
|
|
|
|
|
|
+ if self.transformation == 'min_diff_filter':
|
|
|
+ w_size, h_size = list(map(int, self.param.split(',')))
|
|
|
+ h, w = list(map(int, self.size.split(',')))
|
|
|
+
|
|
|
+ # bilateral with window of size (`w_size`, `h_size`)
|
|
|
+ lab_img = transform.get_LAB_L(img)
|
|
|
+
|
|
|
+ lab_img = Image.fromarray(lab_img)
|
|
|
+ lab_img.thumbnail((h, w))
|
|
|
+
|
|
|
+ diff_img = convolution.convolution2D(lab_img, kernels.min_bilateral_diff, (w_size, h_size))
|
|
|
+
|
|
|
+ data = np.array(diff_img*255, 'uint8')
|
|
|
+
|
|
|
if self.transformation == 'static':
|
|
|
# static content, we keep input as it is
|
|
|
data = img
|
|
@@ -45,6 +69,11 @@ class Transformation():
|
|
|
n_components = self.param
|
|
|
path = os.path.join(path, 'N' + str(n_components))
|
|
|
|
|
|
+ if self.transformation == 'min_diff_filter':
|
|
|
+ w_size, h_size = list(map(int, self.param.split(',')))
|
|
|
+ w, h = list(map(int, self.size.split(',')))
|
|
|
+ path = os.path.join(path, 'W_' + str(w_size)) + '_' + str(h_size) + '_S_' + str(w) + '_' + str(h)
|
|
|
+
|
|
|
if self.transformation == 'static':
|
|
|
# param contains image name to find for each scene
|
|
|
path = self.param
|