Project

General

Profile

Actions

Our Project


Wiki | About Us | Regarding Our Project | Coding | UML Diagrams | Results |


Overview

Our project is responsible for delivering an end-product that creates a single span of an image that is made by overlapping images from two projects. The two component images have been processed using image processing techniques (which includes gamma correction, alpha blending, and modified intensity) to appropriate the look of the final image. Our team is divided into the project manager, leader, oxygen generator, and sub-teams dealing with wiki management, coding, commenting, and UML designing.

We primarily focus on utilizing OpenCV for advanced image processing, supported by Python.
This project utilizes Unified Modeling Language (UML) for clear, structured design and Python for efficient coding, enhanced with OpenCV libraries for advanced image processing. Our code is thoroughly documented with Doxygen for clarity and maintenance, while project management and monitoring are streamlined using Redmine.

  1. Image Processing with Python and OpenCV: We use Python, a flexible programming language, together with OpenCV, a detailed library for image processing. This pair helps us effectively carry out complex image analysis and processing tasks.
  2. Structured Design with UML: We utilize Unified Modeling Language (UML) to create a clear and organized design. UML helps in visually representing the system's architecture and workflows, making it more accessible and easier to understand.
  3. Documentation with Doxygen: Our code is thoroughly documented using Doxygen. This approach ensures clarity and ease of maintenance, enhancing the long-term usability and adaptability of our project.
  4. Project Management with Redmine: For effective tracking and management, we use Redmine. This tool aids in monitoring project progress, task management, and team collaboration, keeping our project well organized and on schedule.

Image-Processing Technique

Each component of the project, from image processing to project management, has been thoughtfully integrated to ensure optimal efficiency and usability.

Brief explanation of technology

Our project's goal is to create one large, distinct image on a flat screen by using two projectors. We use a flat screen and two laptops, and the projectors aim directly at the screen. To enhance the image quality, we apply techniques like alpha blending and gamma correction in our process.
Assuming the screen size is 1280mm wide, the two projectors are positioned at a distance we call 'd', which is less than the width of the screen. To determine the size of the area where the images from both projectors overlap, we use the formula 'screen size - d = x'. This calculation helps us understand the relationship between the screen size, the distance between the projectors, and the size of the overlap area.

Gamma Correction Method:
It applies gamma correction to a corresponding image. Its correction is used to adjust the luminance of an image. This particularly useful in correcting the brightness of an image or adjusting its contrast. It is a nonlinear adaptation that is applied to each value of the pixel. In general, linear methods such as adding, subtracting, and multiplying are applied to all parts of pixels. Gamma correction is responsible for remodeling the saturation of the image by performing nonlinear methods on the input image's pixels. It is also necessary to maintain a stable gamma value, between too small or large.

\text{gamma_corrected} = ( \text{image} / 255.0 )^\gamma \times 255

Note: gamma is the gamma value provided to the method. The original image (__image) is first normalized (divided by 255, as pixel values range from 0 to 255), then raised to the power of gamma, and finally rescaled back to the 0-255 range.

The Process of Gamma Correction

Alpha Blending Method:

It is a technique used when computer graphics are laid on top of both layers and single or multiple objects contain some level of transparency portion. It ensures that the visible pixels of the graphic that are underneath a transparent area and their color or brightness are adjusted based on the transparency degree on the upper object. An alpha channel is a form of the mask that manages the amount of information to display from lower-lying graphics.

It performs alpha blending on the edges of an image. It is a process of combining an image with a background, which is to create the appearance of transparency in a range of partial or full: typically used to blend two images. The method applies this blending in different way depending on the value of image_side:

*If image_side is 1,
  • blends the left edge of the image.
    *If image_side is 0,
  • blends the right edge of the image.

The blending is done by mixing two types of images: the gamma_corrected image and the current result_image using an alpha value (alpha) that varies along the mask width (__mask).
This creates a significant change or transition between these images.

The Process of Alpha Blending

Modify Intensity Method:
This method adjusts the intensity of the edges of an image. Like in alphaBlending, the operation varies depending on image_side:

If image_side is 1, it reduces the intensity towards the left edge.
If image_side is 0, it reduces the intensity towards the right edge.
The intensity factor is calculated such that it decreases linearly towards the edge of the mask; This creates a fading effect on the edges of the image, where the edge gradually fades either into the background or into another image.

Updated by Satya Sai Abhiram OGGU over 1 year ago ยท 72 revisions