- Introduction
- Features
- Key Features
- Technical Specifications
- Modes of Operation
- Getting Started
- Overview Screenshots
- High-Level Architecture
- Acknowledgments
- Contributing
- License
The SEM Image Viewer is a desktop application developed to enhance workflows in digital chip manufacturing by enabling engineers and scientists to view, edit, and analyze images captured by Scanning Electron Microscopes (SEMs). The tool combines robust image processing capabilities with a user-friendly interface, supporting both individual and batch operations for high efficiency.
This project was developed as part of the Siemens Software Academy Graduation Program.
-
Three Operational Modes:
- Main View: Focus on a single SEM image for in-depth analysis.
- Grid View: Compare multiple images simultaneously in a grid format.
- Diff View: Compare two images side by side with automated difference highlighting.
-
Dynamic Metadata Bar:
- Displays image dimensions, zoom percentage, and mouse hover position.
-
Real-time Processing:
- Multi-threaded architecture for handling large datasets without lag.
-
Logging System:
- A comprehensive Logging System with undo/redo options and quick links.
-
UI/UX Considerations:
- The tools offer both light and dark mode with shortcuts and multiple access buttons.
The application offers multiple modes for viewing SEM images, allowing users to toggle between detailed single-image views, side-by-side comparisons, and grid layouts. This flexibility ensures the application can meet diverse needs, from focused analysis to batch comparisons.
Built-in image processing tools enable users to apply filters such as:
- Contrast enhancement
- Noise reduction
- Sharpening
These tools help improve image clarity and highlight key features of SEM scans.
The viewer supports customizable image overlays for visualizing image data using heat maps to analyze patterns and intensity plots for pixel intensity distribution. These overlays are invaluable for quality control and feature tracking in manufacturing workflows.
Perform operations on multiple images simultaneously, such as applying filters, exporting images, or comparing results. This significantly reduces manual effort in processing large datasets utilizing multithreaded capabilities.
The application allows users to save their progress and resume sessions at any time. This includes saving the current view, filters, and annotations, ensuring a seamless workflow.
Export processed images in multiple formats, such as JPG, PNG, and BMP, with support for custom resolutions and compression settings. This feature is tailored for diverse industry standards.
Comprehensive logging of all actions ensures transparency and provides a record of the processing pipeline. Logs can be exported for audit purposes or workflow optimization.
Every action performed in the application can be reversed or re-applied using an intuitive Undo/Redo system, ensuring user confidence and preventing accidental errors.
The application utilizes a Thread Pool to manage multiple concurrent image processing tasks, ensuring that large datasets or computationally intensive tasks do not block the user interface. This results in smoother performance and responsiveness even under heavy workloads.
To optimize image viewing and processing, the SEM Image Viewer employs an Image Cacher. Frequently accessed images are stored in memory, significantly reducing loading times when switching between images or re-applying filters.
- Framework: Qt (GUI Development)
- Programming Language: C++
- Image Processing Library: OpenCV
- Build System: CMake
- Target Platform: Windows/Linux
- Focuses on a single SEM image.
- Provides tools for zooming, panning, and applying filters.
- Displays metadata dynamically (e.g., dimensions, zoom, and hover coordinates).
- Displays multiple images in a grid layout.
- Synchronizes zooming across images for batch comparisons.
- Ideal for analyzing variations between SEM scans.
- Places two images side by side.
- Highlights differences using customizable comparison algorithms.
- Supports overlay features for more detailed insights.
- Install the following tools and libraries:
- Qt6 framework.
- OpenCV (latest version).
- CMake (minimum version 3.22).
- A C++17-compliant compiler (GCC/Clang/MSVC).
- Clone the repository:
git clone <repository_url>
- Build the project using CMake:
mkdir build && cd build
cmake ..
make
- Run the application:
./SEMImageViewer
This project was developed as part of the Siemens Software Academy Graduation Program by our team. It reflects our dedication to solving real-world challenges in the field of digital chip manufacturing.
We welcome contributions from the community.
This project is licensed under the MIT License. See the LICENSE
file for details.