About Project » History » Version 31
WONGKAI Briana Monika Luckyta, 12/25/2025 03:48 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 | 25 | Sandeep GANESAN | |
| 65 | |||
| 66 | h3. Technologies to be used |
||
| 67 | |||
| 68 | We plan to use a single projection surface illuminated by two projectors, each connected to separate computers. Both projectors will display synchronized images or videos, which are combined into a single, seamless projection. |
||
| 69 | |||
| 70 | To accomplish this, we will apply the following theoratical technologies: |
||
| 71 | * *Linear and Quadratic Mixing* |
||
| 72 | * *Gamma Correction* |
||
| 73 | * *Alpha Blending* |
||
| 74 | * *Intensity Adjustment for Edge Blending* |
||
| 75 | * *Video Frame Synchronization* |
||
| 76 | |||
| 77 | --- |
||
| 78 | |||
| 79 | h3. Linear and Quadratic Mixing |
||
| 80 | |||
| 81 | This project introduces two blending functions, that are linear and quadratic. These are used to control brightness and transition smoothness between overlapping projection zones. |
||
| 82 | *+Linear Mixing+* |
||
| 83 | Linear mixing provides a constant-rate interpolation between two projected frames: |
||
| 84 | |||
| 85 | p=. *@I(blended) = (1 - α) Ć Iā + α Ć Iā@* |
||
| 86 | |||
| 87 | This method creates a direct and proportionate blend, suitable for small overlaps and real-time applications with limited motion. |
||
| 88 | *+Quadratic Mixing+* |
||
| 89 | Quadratic mixing introduces a *non-linear weight curve* that reduces edge artifacts by applying a quadratic power to alpha: |
||
| 90 | |||
| 91 | p=. *@I(blended) = (1 ā α²) Ć Iā + (α²) Ć Iā@* |
||
| 92 | |||
| 93 | This gives more emphasis to the central region and smoother gradients at the edges, producing results visually similar to gamma-based perceptual blending. |
||
| 94 | |||
| 95 | --- |
||
| 96 | |||
| 97 | h2. Gamma Correction Method |
||
| 98 | |||
| 99 | Gamma correction modifies each pixelās luminance through a non-linear power-law transformatio* to align brightness with human perception: |
||
| 100 | |||
| 101 | p=. *@Iā = 255 Ć (Iā / 255)¹įįµ@* |
||
| 102 | |||
| 103 | * *γ > 1 ā darkens the image* |
||
| 104 | * *γ < 1 ā brightens the image* |
||
| 105 | |||
| 106 | In this project, gamma correction ensures the luminance from both projectors matches across the surface, preventing brightness mismatches when mixing video frames. |
||
| 107 | |||
| 108 | p=. !{width:600px}gamm_correction.png! |
||
| 109 | |||
| 110 | --- |
||
| 111 | |||
| 112 | h2. Alpha Blending |
||
| 113 | |||
| 114 | Alpha blending merges two visual layers based on a defined transparency coefficient (alpha). |
||
| 115 | |||
| 116 | p=. !alpha_blend_equation.png ! |
||
| 117 | |||
| 118 | By controlling alpha spatially, we can fade one projection into another projection. |
||
| 119 | |||
| 120 | In our system: |
||
| 121 | * Dynamic alpha masks are generated based on projector overlap geometry |
||
| 122 | * Linear and quadratic variations of alpha allow adaptive blending for different edge behaviors |
||
| 123 | |||
| 124 | p=. !Alpha_compositing..png! |
||
| 125 | *Diagram to show α blending* |
||
| 126 | |||
| 127 | --- |
||
| 128 | |||
| 129 | h2. Intensity Modification |
||
| 130 | |||
| 131 | To achieve seamless edge blending, intensity modification is applied using positional control and mixing curves. |
||
| 132 | |||
| 133 | * If projector_side = 1 ā intensity decreases toward the left edge |
||
| 134 | * If projector_side = 0 ā intensity decreases toward the right edge |
||
| 135 | * Quadratic falloff is used at boundary regions to mimic human perceptual smoothness |
||
| 136 | |||
| 137 | The blending intensity is dynamically modulated using: |
||
| 138 | |||
| 139 | p=. !intensity_equation.png ! |
||
| 140 | |||
| 141 | where *f(x)* follows a linear or quadratic curve depending on the region and overlap type. |
||
| 142 | |||
| 143 | p=. !{width:500px}edge_intensity.png! |
||
| 144 | Shows the intensity modification being applied |
||
| 145 | |||
| 146 | |||
| 147 | --- |
||
| 148 | |||
| 149 | h2. Video Support and Frame Synchronization |
||
| 150 | |||
| 151 | Unlike static blending, our system supports *real-time video* by: |
||
| 152 | * Reading synchronized frames from two video sources using OpenCV |
||
| 153 | * Applying blending and gamma correction on each frame in real time |
||
| 154 | * Displaying processed frames via a graphical interface |
||
| 155 | |||
| 156 | 13 | PratamaćKwee BRANDON | |
| 157 | --- |
||
| 158 | 3 | Yaroslav MAYDEBURA | |
| 159 | 10 | PratamaćKwee BRANDON | h2. VI. System Architecture |
| 160 | 22 | PratamaćKwee BRANDON | !http://www.dh.is.ritsumei.ac.jp/redmine/attachments/download/1859/Class_Diagram.png! |
| 161 | 21 | PratamaćKwee BRANDON | |
| 162 | 23 | Junyi Xu | h3. The system is split into four classes: ConfigReader for configuration, VideoProcessing for video input and frames, ProjectionSplit for splitting and blending images, and ImageDisplayApp as the Tk GUI that coordinates everything. |
| 163 | |||
| 164 | Here are the descriptions of each class: |
||
| 165 | |||
| 166 | *ConfigReader* |
||
| 167 | Reads/writes config.ini and holds parameters such as file paths, overlap, and blend mode, which provides simple getters so other classes can use the settings without editing code, and keeps configuration separate from code for easy reuse. |
||
| 168 | |||
| 169 | *VideoProcessing* |
||
| 170 | Opens a video and reads frames with cv2.VideoCapture, when the stream ends it returns None and releases resources, keeping all video I/O inside this class so the GUI and processing stay clean. |
||
| 171 | |||
| 172 | *ProjectionSplit* |
||
| 173 | Performs the core image operations by splitting into main/left/right with the chosen overlap and blend, while accepting still images or video frames and returning NumPy arrays using settings from ConfigReader. |
||
| 174 | |||
| 175 | *ImageDisplayApp* |
||
| 176 | Tk GUI manages ProjectionSplit and VideoProcessing class, lets users set overlap, blend, runs processing, and displays results (including fullscreen) while updating on screen labels. |
||
| 177 | |||
| 178 | |||
| 179 | 3 | Yaroslav MAYDEBURA | --- |
| 180 | |||
| 181 | 14 | PratamaćKwee BRANDON | h2. VII. Requirement Analysis |
| 182 | |||
| 183 | This defines the functional requirement of the project and outlining what the system needs to accomplish |
||
| 184 | |||
| 185 | *- Image Input and Processing* |
||
| 186 | -The system must accept image files and video files as input. |
||
| 187 | -The system must split a given image into two sub-images (left and right) with a specific overlap region |
||
| 188 | -The system must allow users to choose a one out of the three blending mode (linear, quadratic, or gaussian). |
||
| 189 | -The system must apply blending algorithms using OpenCV and PyTorch for GPU-accelerated computation for videos. |
||
| 190 | -The system must save the blended images (left.png, right.png) locally after processing. |
||
| 191 | |||
| 192 | *- Graphical User Interface (GUI)* |
||
| 193 | -The system must let the user select the overlap pixel value from the GUI. |
||
| 194 | -The system must let the user choose the blending algorithm from the GUI. |
||
| 195 | -The system must be able to run both image and video blending modes in the GUI. |
||
| 196 | -The system must let the user view the original, left, and right images in real-time in the GUI. |
||
| 197 | -The system must be able display the blended outputs in fullscreen mode from the GUI. |
||
| 198 | |||
| 199 | *- Error Handling and Feedback* |
||
| 200 | -The system must handle missing files and display warnings or error messages appropriately. |
||
| 201 | -The GUI must handle invalid user input without crashing the program. |
||
| 202 | 3 | Yaroslav MAYDEBURA | |
| 203 | --- |
||
| 204 | |||
| 205 | 10 | PratamaćKwee BRANDON | h2. VIII. Technology Stack |
| 206 | 30 | PratamaćKwee BRANDON | |
| 207 | 26 | Yaroslav MAYDEBURA | h3. Python (OpenCV, NumPy) |
| 208 | *Python* is our primary programming language, chosen for its flexibility and extensive scientific computing libraries. *OpenCV* provides core image processing functions including filtering, color correction, and gamma adjustment. *NumPy* enhances performance through optimized numerical and matrix operations, enabling efficient multi-image blending, brightness calibration, and automated adjustments. |
||
| 209 | 1 | PratamaćKwee BRANDON | |
| 210 | 26 | Yaroslav MAYDEBURA | h3. Doxygen |
| 211 | *Doxygen* generates comprehensive documentation directly from our codebase, ensuring all functions, variables, and logic are clearly defined and cross-referenced. This maintains code transparency, consistency, and ease of maintenance for future developers. |
||
| 212 | 16 | Yaroslav MAYDEBURA | |
| 213 | h3. Redmine |
||
| 214 | 26 | Yaroslav MAYDEBURA | *Redmine* serves as our project management hub, facilitating task tracking, deadline management, and team communication. Through Wiki pages, ticket tracking, and Gantt charts, it ensures alignment on goals, progress, and deliverables while integrating version control for seamless collaboration. |
| 215 | 17 | Yaroslav MAYDEBURA | |
| 216 | 16 | Yaroslav MAYDEBURA | h3. Astah |
| 217 | 26 | Yaroslav MAYDEBURA | *Astah* enables creation of UML diagramsāclass, use case, and sequence diagramsāthat visualize system architecture, component interactions, and data flow. This bridges conceptual design and implementation, making complex systems easier to understand and develop. |
| 218 | 16 | Yaroslav MAYDEBURA | |
| 219 | 26 | Yaroslav MAYDEBURA | These tools form a *complete ecosystem* supporting every development phaseāfrom planning and implementation to documentation and project management. This integrated stack enables our team to build a robust, well-documented, and scalable real-time image composition system. |
| 220 | 30 | PratamaćKwee BRANDON | |
| 221 | 18 | Yaroslav MAYDEBURA | --- |
| 222 | |||
| 223 | h2. IX. Application & Impact |
||
| 224 | 28 | Yaroslav MAYDEBURA | |
| 225 | 26 | Yaroslav MAYDEBURA | Our *image composition and blending system* enables diverse real-world applications by automating multi-projector alignment, delivering a *low-cost, scalable* alternative to expensive hardware solutions for creating seamless large-scale displays. |
| 226 | 18 | Yaroslav MAYDEBURA | |
| 227 | h3. Art & Exhibition Spaces |
||
| 228 | 26 | Yaroslav MAYDEBURA | Perfect for *art galleries, museums, and exhibitions*, our system projects continuous, high-quality images across multiple surfaces for immersive installations. Artists and curators can use *affordable projectors* to achieve professionally blended visuals with minimal setup, replacing costly hardware and manual calibration. |
| 229 | 18 | Yaroslav MAYDEBURA | |
| 230 | h3. Education & Learning Environments |
||
| 231 | 26 | Yaroslav MAYDEBURA | The system enables teachers to create *wide-format, high-resolution educational displays* using multiple projectors, enhancing *student engagement* through better visualization of 3D models, scientific simulations, and large datasetsāall cost-effectively. |
| 232 | 18 | Yaroslav MAYDEBURA | |
| 233 | h3. Business, Simulation & Public Use |
||
| 234 | 26 | Yaroslav MAYDEBURA | Applications extend to *business presentations, public events, gaming, and simulation systems*. Integration possibilities include *VR/AR setups*, projection mapping, and multi-screen environments, making professional-grade displays accessible to small organizations and community centers. |
| 235 | 18 | Yaroslav MAYDEBURA | |
| 236 | h3. Broader Impact |
||
| 237 | 26 | Yaroslav MAYDEBURA | This project demonstrates how *computer vision, automation, and open-source tools* democratize professional visual experiences. It bridges creativity with affordability, enabling immersive large-scale projections through *smart algorithms* rather than expensive equipment. |
| 238 | 3 | Yaroslav MAYDEBURA | |
| 239 | 26 | Yaroslav MAYDEBURA | > *"Innovation isn't always about new hardware ā sometimes it's about making what we already have work smarter."* |
| 240 | 3 | Yaroslav MAYDEBURA | --- |
| 241 | 10 | PratamaćKwee BRANDON | |
| 242 | 19 | Yaroslav MAYDEBURA | h2. X. Limitation & Future Enhancements |
| 243 | |||
| 244 | While our image blending system achieves reliable and high-quality results, it still faces several *technical and practical limitations* that can be improved in future versions. Recognizing these challenges helps guide further development toward a more precise and efficient solution. |
||
| 245 | |||
| 246 | |||
| 247 | h3. Current Limitations |
||
| 248 | |||
| 249 | One key limitation lies in the *precision of projector calibration*. |
||
| 250 | For accurate image blending, each projector must be positioned carefully with minimal angular error. Even slight misalignment or lens distortion can lead to *visible seams or overlapping inconsistencies* in the final projection. |
||
| 251 | |||
| 252 | Lighting conditions also affect performance ā excessive brightness, uneven wall surfaces, or reflective backgrounds may reduce blending accuracy. Additionally, our current system assumes a *fixed projection setup*; movement or vibration of the projector requires recalibration, which limits flexibility in dynamic environments. |
||
| 253 | |||
| 254 | Another limitation is *processing performance*. While Python and OpenCV provide excellent tools for image manipulation, real-time blending on larger resolutions may require higher computational power or GPU acceleration for smoother performance. |
||
| 255 | |||
| 256 | |||
| 257 | h3. Future Enhancements |
||
| 258 | |||
| 259 | In future iterations, we aim to develop an *automatic projector calibration system* using camera feedback or sensor-based alignment. |
||
| 260 | By detecting geometric distortions automatically, the system could self-correct in real time, reducing the need for manual setup. |
||
| 261 | |||
| 262 | We also plan to optimize the blending algorithm through *parallel processing and GPU acceleration*, enabling faster computation for high-resolution displays. |
||
| 263 | Integrating a *user-friendly interface* will further simplify configuration, making the system accessible even to non-technical users. |
||
| 264 | |||
| 265 | Finally, expanding compatibility with *different projection hardware and AR/VR systems* could open new possibilities for interactive and immersive visual environments. |
||
| 266 | |||
| 267 | |||
| 268 | > *āPerfection is not the absence of flaws, but the pursuit of improvement.ā* |
||
| 269 | > ā *G12-2025 Team* |
||
| 270 | 3 | Yaroslav MAYDEBURA | |
| 271 | |||
| 272 | --- |
||
| 273 | 5 | Yaroslav MAYDEBURA | |
| 274 | 1 | PratamaćKwee BRANDON | !https://media.tenor.com/Q14Y3rSxX5wAAAAM/plan-roadmap.gif! |