Project

General

Profile

About our project » History » Revision 19

Revision 18 (STOLBOVOY Dennis Victor, 01/08/2026 02:10 PM) → Revision 19/22 (STOLBOVOY Dennis Victor, 01/08/2026 02:16 PM)

[[Wiki|← Wiki Home]] 

 h1. Project Details 

 ___ 

 h2. Overview 
 The purpose of this project is to create a software that can display overlapping images from two projectors. The main technique used to produce a smooth image was alpha blending, with three blend types implemented, linear, quadratic, and gaussian blending. This page will detail the techniques used, as well as the implementation of the software. 


 h2. Software Used 

 |_. Software |_. Description | 
 | *Astah* | Used to draw UML diagrams and export them into Python templates to begin implementation. | 
 | *Python* | A high level programming language used to implement the project. | 
 | *Redmine* | Used to track issues and create the project's wiki. | 
 | *Doxygen* | Used to generate documentation from written code. | 

 h2. Alpha Blending 

 ___ 

 
 When multiple projections overlap, the overlapping regions are illuminated multiple times resulting in bright spots. Alpha blending attempts to reduce this illumination to bring the final result to a brightness that is consistent with the rest of the projection. The image below depicts what would happen with no alpha blending. 

 !{width: 50%}NoAlphaBlending.png! 

 h2. Linear Blending 

 ___ 

 
 Linear alpha blending, as the name suggests, reduces the alpha of the image linearly with distance from the start of the overlap region. 
 In all the following formulas, x represents the horizontal distance from the beginning of the overlap region on the left. 

 !{width: 50%}LinearAlphaBlending.png! 

 !LinearLeft.png! 
 !LinearRight.png! 

 h2. Quadratic Blending 

 ___ 

 
 Quadratic alpha blending attempts to adjust the alpha of the image in a squared relationship to the distance from the overlap start distance. 
 !QuadraticLeft.png! 
 !QuadraticRight.png! 

 h2. Gaussian Blending 

 ___ 

 
 Gaussian blending uses a gaussian curve to adjust alpha values across the overlap region. The gaussian curve is supposed to closely match human sensitivity to changes in brightness. 
 !GaussianLeft.png! 
 !GaussianRight.png! 
 !CodeCogsEqn.png!