Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Image Visualization

Dear ImGui Bundle includes specialized tools for image inspection and debugging.

ImmVision - Image Viewer Widget

Introduction

ImmVision provides an interactive image viewer widget for ImGui applications, with zoom, pan, pixel inspection, and colormap support. Useful for building image processing tools and debugging computer vision pipelines from within your application.

ImmVision: interactive image display with zoom, pan, and pixel inspection.

ImmVision: interactive image display with zoom, pan, and pixel inspection.

Quick example:

Python
C++
from imgui_bundle import immvision, immapp
import numpy as np

immvision.use_rgb_color_order()

image = np.zeros((100, 100, 3), dtype=np.uint8)
params = immvision.ImageParams()

def gui():
    # Simple display
    immvision.image_display("Simple", image)

    # Full interactivity (zoom, pan, pixel inspection)
    immvision.image("Interactive", image, params)

immapp.run(gui)

Features:

Full Demo

Click the image to run a launcher that includes several examples.

Click the image to run a launcher that includes several examples.

DemoPythonC++
Display Imagedemo_immvision_display.pydemo_immvision_display.cpp
Link Images Zoom/Pandemo_immvision_link.pydemo_immvision_link.cpp
Image Inspectordemo_immvision_inspector.pydemo_immvision_inspector.cpp
Image Processingdemo_immvision_process.pydemo_immvision_process.cpp

Documented APIs

ImmDebug — Standalone Image Debugger

Video tutorial on Youtube

ImmDebug a tool from ImmVision lets you visually inspect images from any running program — during execution or even after it finishes (post-mortem). Add one-line calls to send images to a standalone viewer with zoom, pan, pixel inspection, and colormaps.

The immdebug viewer displaying images sent from a running program.

The immdebug viewer displaying images sent from a running program.

Python

Install from PyPI:

pip install immdebug

Start the viewer in a terminal, then send images from your code:

# In a terminal: immdebug-viewer

import numpy as np
import cv2
from immdebug import immdebug

image = cv2.imread("photo.jpg")
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray, 100, 200)

immdebug(image, "image")  # inspect the original image
immdebug(gray, "gray")    # inspect different steps of your processing pipeline
immdebug(edges, "edges")  

Works with OpenCV, PIL, matplotlib, or any numpy array. See the immdebug PyPI package for full API documentation.

C++

Drop 4 files from src/immdebug into your project (only OpenCV required):

#include "immdebug/immdebug.h"

cv::Mat image = cv::imread("photo.jpg");
ImmVision::ImmDebug(image, "original");

Build and run the C++ viewer separately — see the immvision README for instructions.

Features

imgui_tex_inspect - Texture Inspector

Introduction

imgui_tex_inspect is a texture inspector tool for debugging GPU textures. It displays textures with zoom, pan, and detailed pixel information.

imgui_tex_inspect: GPU texture inspection with zoom and pixel details.

imgui_tex_inspect: GPU texture inspection with zoom and pixel details.

Full Demo

Documented APIs