|
1 | 1 | """Visualizer for modelAPI.""" |
2 | 2 |
|
3 | | -# Copyright (C) 2024 Intel Corporation |
| 3 | +# Copyright (C) 2024-2025 Intel Corporation |
4 | 4 | # SPDX-License-Identifier: Apache-2.0 |
5 | 5 |
|
6 | 6 | from __future__ import annotations # TODO: remove when Python3.9 support is dropped |
@@ -42,18 +42,32 @@ class Visualizer: |
42 | 42 | def __init__(self, layout: Layout | None = None) -> None: |
43 | 43 | self.layout = layout |
44 | 44 |
|
45 | | - def show(self, image: Image | np.ndarray, result: Result) -> None: |
| 45 | + def show(self, image: Image.Image | np.ndarray, result: Result) -> None: |
46 | 46 | if isinstance(image, np.ndarray): |
47 | 47 | image = Image.fromarray(image) |
48 | 48 | scene = self._scene_from_result(image, result) |
49 | 49 | return scene.show() |
50 | 50 |
|
51 | | - def save(self, image: Image | np.ndarray, result: Result, path: Path) -> None: |
| 51 | + def save(self, image: Image.Image | np.ndarray, result: Result, path: Path) -> None: |
52 | 52 | if isinstance(image, np.ndarray): |
53 | 53 | image = Image.fromarray(image) |
54 | 54 | scene = self._scene_from_result(image, result) |
55 | 55 | scene.save(path) |
56 | 56 |
|
| 57 | + def render(self, image: Image.Image | np.ndarray, result: Result) -> Image.Image | np.ndarray: |
| 58 | + is_numpy = isinstance(image, np.ndarray) |
| 59 | + |
| 60 | + if is_numpy: |
| 61 | + image = Image.fromarray(image) |
| 62 | + |
| 63 | + scene = self._scene_from_result(image, result) |
| 64 | + result_img: Image = scene.render() |
| 65 | + |
| 66 | + if is_numpy: |
| 67 | + return np.array(result_img) |
| 68 | + |
| 69 | + return result_img |
| 70 | + |
57 | 71 | def _scene_from_result(self, image: Image, result: Result) -> Scene: |
58 | 72 | scene: Scene |
59 | 73 | if isinstance(result, AnomalyResult): |
|
0 commit comments