| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- # Part of ImGui Bundle - MIT License - Copyright (c) 2022-2026 Pascal Thomet - https://github.com/pthom/imgui_bundle
- from imgui_bundle import imgui, immapp, imgui_md, has_submodule
- HAS_IMMVISION = has_submodule("immvision")
- if HAS_IMMVISION:
- from imgui_bundle import immvision # noqa: F401
- import importlib.util # noqa: E402
- from imgui_bundle.demos_python import demo_utils # noqa: E402
- HAS_OPENCV = importlib.util.find_spec("cv2") is not None
- HAS_PILLOW = importlib.util.find_spec("PIL") is not None
- if HAS_IMMVISION:
- from imgui_bundle.demos_python import demos_immvision
- def demo_gui():
- if not HAS_IMMVISION:
- imgui.text("Dear ImGui Bundle was compiled without support for ImmVision")
- return
- imgui_md.render_unindented(
- """
- [ImmVision](https://github.com/pthom/immvision) is an immediate image debugger and inspector. It can display and analyse RGB & float images with 1 to 4 channels, with zoom, pan, pixel inspection, and colormaps.
- """
- )
- if not HAS_PILLOW:
- imgui.new_line()
- imgui_md.render_unindented("""
- ## Missing dependency: Pillow
- This demo requires the Python package *Pillow* to load images.
- Please install it with:
- ```
- pip install Pillow
- ```
- (This demo will use dummy images until Pillow is installed.)
- """)
- imgui.new_line()
- if imgui.collapsing_header("Display images"):
- demos_immvision.demo_immvision_display.demo_gui()
- demo_utils.show_python_vs_cpp_file("demos_immvision/demo_immvision_display")
- if imgui.collapsing_header("Link images zoom"):
- demos_immvision.demo_immvision_link.demo_gui()
- demo_utils.show_python_vs_cpp_file("demos_immvision/demo_immvision_link")
- if imgui.collapsing_header("Image inspector"):
- demos_immvision.demo_immvision_inspector.demo_gui()
- demo_utils.show_python_vs_cpp_file("demos_immvision/demo_immvision_inspector")
- if imgui.collapsing_header("Example with image processing"):
- if HAS_OPENCV:
- demos_immvision.demo_immvision_process.demo_gui()
- demo_utils.show_python_vs_cpp_file(
- "demos_immvision/demo_immvision_process", nb_lines=40
- )
- else:
- imgui_md.render_unindented("""
- This demo requires OpenCv. Please install OpenCv to run it, with:
- ```
- pip install opencv-python
- ```
- """)
- def main():
- immapp.run(demo_gui, window_size=(1000, 800), with_markdown=True)
- if __name__ == "__main__":
- main()
|