About Project » History » Version 17
Yaroslav MAYDEBURA, 11/06/2025 02:47 PM
| 1 | 5 | Yaroslav MAYDEBURA | h1. đź’ˇ About Project |
|---|---|---|---|
| 2 | 1 | Pratama Kwee BRANDON | |
| 3 | 3 | Yaroslav MAYDEBURA | --- |
| 4 | 1 | Pratama Kwee BRANDON | |
| 5 | 5 | Yaroslav MAYDEBURA | h2. I. Project Overview |
| 6 | 4 | Yaroslav MAYDEBURA | |
| 7 | 15 | Sandeep GANESAN | Our project focuses on developing a high-quality image composition system capable of seamlessly merging two or more projected images into a single, visually uniform display. The goal is to ensure that the combined image appears continuous and free from visible seams, color shifts, or brightness inconsistencies. |
| 8 | 1 | Pratama Kwee BRANDON | |
| 9 | 15 | Sandeep GANESAN | Built using Python and OpenCV, the system applies a series of advanced image-processing techniques including gamma correction, alpha blending, and intensity adjustment to harmonize overlapping areas. These methods allow us to dynamically compensate for lighting variations and surface irregularities, resulting in a more accurate and visually pleasing projection output. |
| 10 | 1 | Pratama Kwee BRANDON | |
| 11 | 15 | Sandeep GANESAN | The project team is divided into multiple sub-groups, each focusing on specific responsibilities such as software development, UML design, testing, and wiki management. This structure encourages effective collaboration, clear communication, and consistent progress across all development phases. |
| 12 | 4 | Yaroslav MAYDEBURA | |
| 13 | 15 | Sandeep GANESAN | To maintain transparency and ensure reproducibility, we integrate Doxygen for detailed source-code documentation and Redmine for structured task tracking and project coordination. Together, these tools support a development environment that prioritizes scalability, maintainability, and long-term usability. |
| 14 | |||
| 15 | Ultimately, the project aims to deliver a robust framework for real-time image correction and blending, serving as a foundation for future extensions in projection mapping, interactive displays, and multi-screen visualization systems. |
||
| 16 | 3 | Yaroslav MAYDEBURA | |
| 17 | 1 | Pratama Kwee BRANDON | --- |
| 18 | 3 | Yaroslav MAYDEBURA | |
| 19 | 5 | Yaroslav MAYDEBURA | h2. II. Motivation & Problem Statement |
| 20 | 1 | Pratama Kwee BRANDON | |
| 21 | 5 | Yaroslav MAYDEBURA | When using multiple projectors to display a single image, visible seams or brightness inconsistencies often occur in overlapping regions. These inconsistencies degrade image quality and make the final projection appear uneven. |
| 22 | 3 | Yaroslav MAYDEBURA | |
| 23 | 5 | Yaroslav MAYDEBURA | Manual calibration methods are time-consuming and prone to human error. |
| 24 | 3 | Yaroslav MAYDEBURA | |
| 25 | 5 | Yaroslav MAYDEBURA | Our motivation is to develop a software-based approach that automates the alignment and blending process, ensuring seamless image projection. |
| 26 | 1 | Pratama Kwee BRANDON | |
| 27 | 5 | Yaroslav MAYDEBURA | By leveraging the **OpenCV** library, the system can detect overlapping areas, apply brightness corrections, and blend images smoothly — eliminating the need for costly hardware-based calibration systems. |
| 28 | 1 | Pratama Kwee BRANDON | |
| 29 | --- |
||
| 30 | 3 | Yaroslav MAYDEBURA | |
| 31 | 5 | Yaroslav MAYDEBURA | h2. III. Objectives |
| 32 | 3 | Yaroslav MAYDEBURA | |
| 33 | 5 | Yaroslav MAYDEBURA | * To develop an automated image blending system capable of merging two or more projections into a single seamless image. |
| 34 | * To apply *gamma correction* and *intensity modification* techniques to balance color and brightness across overlapping regions. |
||
| 35 | * To implement *alpha blending* for smooth transitions between images. |
||
| 36 | * To design and visualize the system architecture using **UML diagrams**. |
||
| 37 | * To document the entire project using **Doxygen** and manage tasks via **Redmine**. |
||
| 38 | 3 | Yaroslav MAYDEBURA | |
| 39 | --- |
||
| 40 | |||
| 41 | 5 | Yaroslav MAYDEBURA | h2. IV. Key Features |
| 42 | 9 | Pratama Kwee BRANDON | |
| 43 | 7 | Pratama Kwee BRANDON | *1. Automated Image Blending* |
| 44 | Uses OpenCV and user-defined parameters to automatically blend two projected images, ensuring accurate overlap and alignment. |
||
| 45 | 8 | Pratama Kwee BRANDON | |
| 46 | 7 | Pratama Kwee BRANDON | *2. Gamma Correction and Intensity Adjustment* |
| 47 | Employs advanced color and brightness correction algorithms to maintain consistent luminance across blended areas, effectively removing visible seams and mismatches. |
||
| 48 | 8 | Pratama Kwee BRANDON | |
| 49 | 7 | Pratama Kwee BRANDON | *3. Video Blending* |
| 50 | Leverages GPU acceleration through PyTorch to calculate per-pixel brightness for video streams, enabling real-time blending and correction. |
||
| 51 | 8 | Pratama Kwee BRANDON | |
| 52 | 7 | Pratama Kwee BRANDON | *4. User-Friendly Graphical Interface* |
| 53 | Provides an intuitive GUI that allows users to select interpolation modes, specify overlap pixels, and control blending parameters easily. |
||
| 54 | 8 | Pratama Kwee BRANDON | |
| 55 | 7 | Pratama Kwee BRANDON | *5. Modular System Architecture* |
| 56 | Designed using UML-based class structures that divide the project into smaller, manageable components, improving scalability and ease of feature expansion. |
||
| 57 | 8 | Pratama Kwee BRANDON | |
| 58 | 7 | Pratama Kwee BRANDON | *6. Comprehensive Documentation and Project Management* |
| 59 | 1 | Pratama Kwee BRANDON | Integrates Doxygen for automated code documentation and Redmine for task tracking, ensuring transparent collaboration and efficient workflow management. |
| 60 | 12 | Pratama Kwee BRANDON | |
| 61 | 7 | Pratama Kwee BRANDON | --- |
| 62 | 11 | Pratama Kwee BRANDON | |
| 63 | 10 | Pratama Kwee BRANDON | h2. V. Algorithm and Theoretical Framework |
| 64 | 13 | Pratama Kwee BRANDON | _(Add later)_ |
| 65 | |||
| 66 | --- |
||
| 67 | 3 | Yaroslav MAYDEBURA | |
| 68 | 10 | Pratama Kwee BRANDON | h2. VI. System Architecture |
| 69 | 5 | Yaroslav MAYDEBURA | _(Add later)_ |
| 70 | 1 | Pratama Kwee BRANDON | |
| 71 | 3 | Yaroslav MAYDEBURA | --- |
| 72 | |||
| 73 | 14 | Pratama Kwee BRANDON | h2. VII. Requirement Analysis |
| 74 | |||
| 75 | This defines the functional requirement of the project and outlining what the system needs to accomplish |
||
| 76 | |||
| 77 | *- Image Input and Processing* |
||
| 78 | -The system must accept image files and video files as input. |
||
| 79 | -The system must split a given image into two sub-images (left and right) with a specific overlap region |
||
| 80 | -The system must allow users to choose a one out of the three blending mode (linear, quadratic, or gaussian). |
||
| 81 | -The system must apply blending algorithms using OpenCV and PyTorch for GPU-accelerated computation for videos. |
||
| 82 | -The system must save the blended images (left.png, right.png) locally after processing. |
||
| 83 | |||
| 84 | *- Video Frame Blending* |
||
| 85 | -The system must be able to process individual video frames sequentially for real-time blending. |
||
| 86 | -The system must output a smooth blended video stream without visible seams. |
||
| 87 | |||
| 88 | *- Graphical User Interface (GUI)* |
||
| 89 | -The system must let the user select the overlap pixel value from the GUI. |
||
| 90 | -The system must let the user choose the blending algorithm from the GUI. |
||
| 91 | -The system must be able to run both image and video blending modes in the GUI. |
||
| 92 | -The system must let the user view the original, left, and right images in real-time in the GUI. |
||
| 93 | -The system must be able display the blended outputs in fullscreen mode from the GUI. |
||
| 94 | |||
| 95 | *- Error Handling and Feedback* |
||
| 96 | -The system must handle missing files and display warnings or error messages appropriately. |
||
| 97 | -The GUI must handle invalid user input without crashing the program. |
||
| 98 | 3 | Yaroslav MAYDEBURA | |
| 99 | --- |
||
| 100 | |||
| 101 | 10 | Pratama Kwee BRANDON | h2. VIII. Technology Stack |
| 102 | 3 | Yaroslav MAYDEBURA | |
| 103 | 16 | Yaroslav MAYDEBURA | Our project combines a number of strong tools and technologies to make *image blending, documentation, and management* faster and more reliable. |
| 104 | Each stack has a specific job to do to help the development workflow and keep the system working and easy to maintain. |
||
| 105 | |||
| 106 | 17 | Yaroslav MAYDEBURA | h3. Python (OpenCV, NumPy) |
| 107 | 16 | Yaroslav MAYDEBURA | |
| 108 | The major programming language we utilize to build our image-processing system is *Python*. |
||
| 109 | It is flexible, easy to read, and has a large number of libraries that are good for scientific computing and computer vision. |
||
| 110 | |||
| 111 | The *OpenCV* library is the heart of our picture blending technique. It has functions for filtering, correcting colors, and changing gamma. |
||
| 112 | *NumPy* works with OpenCV to speed up calculations and make it easier to work with data by adding numerical and matrix-based operations. |
||
| 113 | 1 | Pratama Kwee BRANDON | |
| 114 | 16 | Yaroslav MAYDEBURA | They work together to let us effortlessly combine several projected images, change brightness and contrast, and calibrate automatically with great accuracy. |
| 115 | |||
| 116 | 17 | Yaroslav MAYDEBURA | h3. Doxygen |
| 117 | 16 | Yaroslav MAYDEBURA | |
| 118 | 1 | Pratama Kwee BRANDON | You can use *Doxygen* to make structured and easy-to-read documentation right from the codebase. |
| 119 | 16 | Yaroslav MAYDEBURA | It makes sure that our functions, variables, and logic are all linked and defined correctly, which makes it easy for future developers to understand and add to the system. |
| 120 | |||
| 121 | Doxygen makes our source code more open, easier to maintain, and more consistent. |
||
| 122 | |||
| 123 | |||
| 124 | 17 | Yaroslav MAYDEBURA | h3. Redmine |
| 125 | 16 | Yaroslav MAYDEBURA | |
| 126 | *Redmine* is the main tool we use for project management and collaboration. |
||
| 127 | It enables effective tracking of tasks, deadlines, and issues while maintaining clear communication among team members. |
||
| 128 | |||
| 129 | Redmine makes sure that everyone in the team is on the same page about goals, progress, and deliverables by using Wiki pages, ticket tracking, and file sharing. |
||
| 130 | It also lets you visualize project progress with *Gantt charts* and integrates version control. |
||
| 131 | |||
| 132 | 17 | Yaroslav MAYDEBURA | h3. Astah |
| 133 | 16 | Yaroslav MAYDEBURA | |
| 134 | You can use *Astah* to make UML diagrams such as class diagrams, use case diagrams, and sequence diagrams. |
||
| 135 | These diagrams show the system's architecture, how components interact with each other, and how data flows across the system. |
||
| 136 | |||
| 137 | This makes it easier to grasp complicated software systems. |
||
| 138 | Astah helps people work together by making it easier to go from conceptual design to actual implementation. |
||
| 139 | |||
| 140 | These tools work together to create a *complete ecosystem* that helps with every step of development — from planning and building to writing documentation and managing projects. |
||
| 141 | With this integrated technology stack, our team can create a strong, well-organized, and scalable system for combining images in real time. |
||
| 142 | |||
| 143 | 3 | Yaroslav MAYDEBURA | |
| 144 | --- |
||
| 145 | 1 | Pratama Kwee BRANDON | |
| 146 | 10 | Pratama Kwee BRANDON | h2. IX. Application & Impact |
| 147 | 5 | Yaroslav MAYDEBURA | _(Add later)_ |
| 148 | 3 | Yaroslav MAYDEBURA | |
| 149 | --- |
||
| 150 | |||
| 151 | 10 | Pratama Kwee BRANDON | h2. X. Limitation & Future Enhancements |
| 152 | 5 | Yaroslav MAYDEBURA | _(Add later)_ |
| 153 | 3 | Yaroslav MAYDEBURA | |
| 154 | --- |
||
| 155 | |||
| 156 | 5 | Yaroslav MAYDEBURA | !https://media.tenor.com/Q14Y3rSxX5wAAAAM/plan-roadmap.gif! |