aboutsummaryrefslogtreecommitdiffstats
path: root/bsie/extractor
diff options
context:
space:
mode:
Diffstat (limited to 'bsie/extractor')
-rw-r--r--bsie/extractor/base.py1
-rw-r--r--bsie/extractor/image/colors_spatial.py8
2 files changed, 4 insertions, 5 deletions
diff --git a/bsie/extractor/base.py b/bsie/extractor/base.py
index 8ab1124..7401244 100644
--- a/bsie/extractor/base.py
+++ b/bsie/extractor/base.py
@@ -108,5 +108,6 @@ class Extractor(abc.ABC):
principals: typing.Iterable[bsfs.schema.Predicate],
) -> typing.Iterator[typing.Tuple[node.Node, bsfs.schema.Predicate, typing.Any]]:
"""Return (node, predicate, value) triples."""
+ # FIXME: type annotation could be more strict: value is Hashable
## EOF ##
diff --git a/bsie/extractor/image/colors_spatial.py b/bsie/extractor/image/colors_spatial.py
index fa31ea7..38f1db4 100644
--- a/bsie/extractor/image/colors_spatial.py
+++ b/bsie/extractor/image/colors_spatial.py
@@ -121,7 +121,7 @@ class ColorsSpatial(base.Extractor):
subject: node.Node,
content: PIL.Image,
principals: typing.Iterable[bsfs.schema.Predicate],
- ) -> typing.Iterator[typing.Tuple[node.Node, bsfs.schema.Predicate, typing.List[float]]]:
+ ) -> typing.Iterator[typing.Tuple[node.Node, bsfs.schema.Predicate, typing.Any]]:
# check principals
if self.schema.predicate(self._predicate_name) not in principals:
# nothing to do; abort
@@ -145,10 +145,8 @@ class ColorsSpatial(base.Extractor):
width = int(np.floor(width / self.exp))
height = int(np.floor(height / self.exp))
- # combine features
- value = np.vstack(features)
- # convert features
- value = value.reshape(-1).tolist() # several bands
+ # combine bands and convert features to tuple
+ value = tuple(np.vstack(features).reshape(-1))
# return triple with feature vector as value
yield subject, self.schema.predicate(self._predicate_name), value