Project

General

Profile

Actions

Home | About Us | About the Project | UML Diagrams | Codes | Outcome | System Requirements


  About the Project

Our project aims to deliver a final product that combines images from two separate projectors into a single seamless image. These two images are processed using advanced image processing techniques, including gamma correction, alpha blending, and modified intensity, to ensure the desired final appearance. Our team consists of a project manager, a leader, and sub-teams dedicated to doxygen generation, wiki management, coding, commenting, and UML design.

We primarily rely on OpenCV and Python for our image processing.

Key Aspects of the Project:

- Image Processing with Python and OpenCV: We use Python in combination with OpenCV, a comprehensive image processing library, to handle complex image analysis and processing tasks efficiently.

- Structured Design with UML: We apply Unified Modeling Language (UML) to create a clear and structured design for our project. UML allows us to visually represent the system's architecture and workflows, making the design easy to understand and follow.

- Thorough Documentation with Doxygen: Our code is meticulously documented using Doxygen, ensuring that it is clear, maintainable, and adaptable for future use.

- Project Management with Redmine: We use Redmine to manage and track project progress, coordinate tasks, and facilitate team collaboration. This tool helps keep the project organized and on schedule.

Synopsis of Technology

Our project's objective is to produce a single, large, and distinct image on a flat screen using two projectors. The setup involves a flat screen and two laptops, with the projectors directly aimed at the screen. Images are resized to utilize the full resolution of the two projectors. To improve image quality, we utilize the alpha blending technique.

Our project works with variable screen widths where the two projectors are positioned at an arbitrary distance from the canvas and each other. Our project allows the users to define the projected image and overlapping region in pixels. Based on selected overlap region, the project ensures seamless blending of the two images, assuming optimal projector configuration.

Alpha Blending Method

This is a technique employed in computer graphics when layering graphics, where single or multiple objects contain a level of transparency. It ensures that the visible pixels of the graphic underneath a transparent area have their color or brightness adjusted based on the transparency level of the upper object. An alpha channel acts as a mask that controls how much of the lower-lying graphics is displayed.

The method performs alpha blending particularly on the edges of an image. It involves combining an image with a background to create the appearance of partial or full transparency. Typically, this is used to blend two images. The blending behavior depends on the value of image_side:

- If image_side is 1, the method blends the left edge of the image.
- If image_side is 0, it blends the right edge of the image.

Blending occurs by mixing two types of images: the upper-layer image and the lower-layer image. This is done using an alpha value that varies along the mask width (mask), resulting in a significant transition between the two images.

Provided below is an example of an a left and right image that can be combined to produce a larger image.

When combined, the brightness of the overlapping region creates an unnatural and striking blend that massively deteriorates the quality of the larger image

Alpha blending is used to create a linear transparency mask that is applied to overlapping region of each image. If the overlapping region of the left image is applied an alpha value of a, the overlapping region of the right image is applied an alpha value of 1-a to retain the original brightness of the image when combined.

The resultant combined image is a larger version of the original images that blends seamlessly and retains the brightness of the original image even in the overlapped regions.

Updated by Dylan WIDJAJA 6 months ago · 21 revisions