Project

General

Profile

Project Description » History » Version 49

Joseph Eugene PELC, 10/31/2024 01:27 PM

1 1 Faiq Sayyidan SETIAWAN
2
---
3
4 34 Faiq Sayyidan SETIAWAN
*%{color:blue}[[/|Home]]%*   |   *[[Team Members]]*   |   *[[Project Description]]*   |   *[[Code]]*   |   *[[UML Diagrams]]*   |   *[[Results]]*   |
5 1 Faiq Sayyidan SETIAWAN
6
---
7 2 Faiq Sayyidan SETIAWAN
8 3 Faiq Sayyidan SETIAWAN
h1=. <pre>
9
Project Description </pre>
10 1 Faiq Sayyidan SETIAWAN
11 32 Faiq Sayyidan SETIAWAN
h2. *%{color:black}Overview%*
12 4 Joseph Eugene PELC
13 9 Joseph Eugene PELC
The aim of this project is to output two different projector images merged into one singular display. We used techniques such as gamma correction, alpha blending, and modification of intensities on the images, in order to get the final result. Our project will have a project manager, team leader, Doxygen documentation team, wiki team, coding team, and UML design team.
14
15 33 Faiq Sayyidan SETIAWAN
h2. *%{color:black}Software and Tools:%*
16 5 Joseph Eugene PELC
17 12 Joseph Eugene PELC
%{color: red}Redmine% - We used Redmine to track our progress and tasks we need to finish
18
%{color: green}Python / OpenCV% - For image processing we used OpenCV within Python 
19
%{color: blue}Doxygen% - We used Doxygen for the code documentation
20
%{color: purple}Astah% - To create UML diagrams of the code 
21 1 Faiq Sayyidan SETIAWAN
22 34 Faiq Sayyidan SETIAWAN
table{width: 100%}.
23
|={width: 100%; background-color: #00e5bf ;}.*%{color:black}Technology%*|
24 1 Faiq Sayyidan SETIAWAN
25
We plan on using one flat-screen display using two projectors with two computers so we can simultaneously show the two images to appear on the large display to create one image. To achieve this, we will use techniques such as gamma correction method, alpha blending method, and intensity modification.
26 29 Joseph Eugene PELC
27 34 Faiq Sayyidan SETIAWAN
table{width: 100%}.
28 35 Faiq Sayyidan SETIAWAN
|={width: 100%; background-color:#01cfe8 ;}.*%{color:black}Alpha Blending Method%* |
29 16 Joseph Eugene PELC
30 1 Faiq Sayyidan SETIAWAN
The code defines an image processing application using Tkinter for the GUI, OpenCV for image manipulation, and PIL for rendering. It allows users to load configuration files, process images with gamma correction and alpha blending, and display or save the results.
31 13 Joseph Eugene PELC
32 37 Faiq Sayyidan SETIAWAN
!{width:50%}BlendModesSample.png!
33 30 Tomoki SAKAI
34 36 Faiq Sayyidan SETIAWAN
table{width: 100%}.
35
|={width: 100%; background-color: #ff8a48  ;}.*%{color:black}Gamma Correction Method:%* |
36 22 MYAT Ma De May Phuu Ngon
37 17 MYAT Ma De May Phuu Ngon
This project incorporates a method called gamma correction which adjusts the brightness of an image by altering its luminance values to each value of the pixel in a non-linear manner. This is helpful in matching to human perception of light. Compared to a camera, we are much more sensitive to changes in dark tones than we are to similar changes in bright tones. There's a biological reason for this peculiarity: it enables our vision to operate over a broader range of luminance.
38 1 Faiq Sayyidan SETIAWAN
39
40 20 MYAT Ma De May Phuu Ngon
Gamma correction involves applying a power-law function to the pixel values of an image. The formula used is described as below.
41 17 MYAT Ma De May Phuu Ngon
42 20 MYAT Ma De May Phuu Ngon
*gamma_corrected = (image / 255.0)^gamma * 255*
43 1 Faiq Sayyidan SETIAWAN
44 22 MYAT Ma De May Phuu Ngon
If the gamma is greater than 1, the image becomes darker; if it is less than 1, the image appears brighter.
45 17 MYAT Ma De May Phuu Ngon
46
Note: Gamma is the provided gamma value. Since pixel values range from 0 to 255, the original image is first normalized (divided by 255), then raised to the power of gamma, and finally rescaled to the 0-255 range. 
47
48 38 Faiq Sayyidan SETIAWAN
|={width: 50%;}.*%{color:black}Before Gamma Correction:%* |={width: 50%;}.*%{color:black}After Gamma Correction%*|
49
|!before_gamma.jpg!|!after_gamma.jpg!|
50 39 Faiq Sayyidan SETIAWAN
51
table{width: 100%}.
52
|={width: 100%; background-color: #f0ff33  ;}.*%{color:black}Intensity Modification:%* |
53
54
This method modifies the intensity at the edges of an image, using gamma correction and alpha blending techniques, based on *image_side*
55
56
-If *image_side* is *1* , the intensity is gradually reduced towards the *left edge* 
57
-If *image_side* is *0* , the intensity is gradually reduced towards the *right edge* 
58
59
The intensity is adjusted using gamma correction and alpha blending, creating a smooth fading effect at the edges, blending the image into the background or another image
60 40 Joseph Eugene PELC
61
table{width: 100%}.
62 46 Joseph Eugene PELC
|={width: 100%; background-color: #ca162e ;}.*%{color:black}Transparency%*|
63 48 Joseph Eugene PELC
h2. Gradient Mask Creation:
64 49 Joseph Eugene PELC
- In the MaskCreator class, the method create_mask() generates a smooth transparency gradient using a smoothstep function. This gradient defines how transparent or opaque each part of the image will be within the masked region.
65
- The smoothstep() function provides a non-linear gradient to create a smooth transition from fully transparent to fully opaque (or vice versa), enhancing visual smoothness.