Actions
Coding » History » Revision 8
« Previous |
Revision 8/10
(diff)
| Next »
Ayato KOTSUGI , 01/18/2024 02:22 PM
Coding
Wiki | About Us | Regarding Our Project | Coding | UML Diagrams | Results |
main.py: creates objects and variables necessary for the another file.
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
@file
@brief This script performs image modification and processing based on configurations specified in the "config_left.ini" or "config_right.ini" file.
@details
The script utilizes the following classes:
- `MaskCreator`: Responsible for creating masks and applying image modifications.
- `ConfigReader`: Reads configuration settings from the specified configuration file ("config_left.ini" or "config_right.ini").
- `MainDisplay`: Handles the main display functionalities.
@note
Make sure to change the configuration file path (`CReader = ConfigReader("config_left.ini")`) accordingly based on the image side.
@date January 18, 2024
"""
from MaskCreator import MaskCreator
from ConfigReader import ConfigReader
from MainDisplay import MainDisplay
# creating object for MainDisplay, ConfigReader classes
# change to config_left.ini or config_right.ini when necessary
CReader = ConfigReader("config_left.ini")
# CReader = ConfigReader("config_right.ini")
MDisplay = MainDisplay()
# initializing variables
mask_width = CReader.getProjectedOverlapWidth()
image_width = CReader.getProjectedImageWidth()
gamma = CReader.getGamma()
image_side = CReader.getImageSide()
image_path = CReader.getImageName()
if image_side == 0:
image_name = 'left'
elif image_side == 1:
image_name = 'right'
else:
print("Invalid ImageSide value in config.ini. Use 0 for left image, 1 for right image.")
# loading image
image = MDisplay.readImage(image_path)
result_image = MDisplay.setImage(image)
if image is not None:
# creating object for MaskCreator class
MCreator = MaskCreator(image)
# image modification
MCreator.create_mask(image_side, mask_width, image_width)
MCreator.gammaCorrection(gamma)
MCreator.result_image = result_image
MCreator.alpha_blending(image_side)
MCreator.mod_intensity(image_side)
# saving image
MDisplay.saveImage()
else:
print(f"Failed to read the image (ImageSide={image_side}).")
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
@file
@brief This script performs image modification and processing based on configurations specified in the "config_left.ini" or "config_right.ini" file.
@details
The script utilizes the following classes:
- `MaskCreator`: Responsible for creating masks and applying image modifications.
- `ConfigReader`: Reads configuration settings from the specified configuration file ("config_left.ini" or "config_right.ini").
- `MainDisplay`: Handles the main display functionalities.
@note
Make sure to change the configuration file path (`CReader = ConfigReader("config_left.ini")`) accordingly based on the image side.
@date January 18, 2024
"""
from MaskCreator import MaskCreator
from ConfigReader import ConfigReader
from MainDisplay import MainDisplay
# creating object for MainDisplay, ConfigReader classes
# change to config_left.ini or config_right.ini when necessary
CReader = ConfigReader("config_left.ini")
# CReader = ConfigReader("config_right.ini")
MDisplay = MainDisplay()
# initializing variables
mask_width = CReader.getProjectedOverlapWidth()
image_width = CReader.getProjectedImageWidth()
gamma = CReader.getGamma()
image_side = CReader.getImageSide()
image_path = CReader.getImageName()
if image_side == 0:
image_name = 'left'
elif image_side == 1:
image_name = 'right'
else:
print("Invalid ImageSide value in config.ini. Use 0 for left image, 1 for right image.")
# loading image
image = MDisplay.readImage(image_path)
result_image = MDisplay.setImage(image)
if image is not None:
# creating object for MaskCreator class
MCreator = MaskCreator(image)
# image modification
MCreator.create_mask(image_side, mask_width, image_width)
MCreator.gammaCorrection(gamma)
MCreator.result_image = result_image
MCreator.alpha_blending(image_side)
MCreator.mod_intensity(image_side)
# saving image
MDisplay.saveImage()
else:
print(f"Failed to read the image (ImageSide={image_side}).")
MaskCreator.py: creates objects and variables necessary for the other file.¶
#!/usr/bin/env python3
#-*- coding: utf-8 -*-
#˅
from MaskCreator import MaskCreator
from ConfigReader import ConfigReader
from MainDisplay import MainDisplay
# creating object for MainDisplay, ConfigReader classes
# change to config_left.ini or config_right.ini when necessary
CReader = ConfigReader("config_left.ini")
# CReader = ConfigReader("config_right.ini")
MDisplay = MainDisplay()
# initializing variables
mask_width = CReader.getProjectedOverlapWidth()
image_width = CReader.getProjectedImageWidth()
gamma = CReader.getGamma()
image_side = CReader.getImageSide()
image_path = CReader.getImageName()
if image_side == 0:
image_name = 'left'
elif image_side == 1:
image_name = 'right'
else:
print("Invalid ImageSide value in config.ini. Use 0 for left image, 1 for right image.")
# loading image
image = MDisplay.readImage(image_path)
result_image = MDisplay.setImage(image)
if image is not None:
# creating object for MaskCreator class
MCreator = MaskCreator(image)
# image modification
MCreator.create_mask(image_side, mask_width, image_width)
MCreator.gammaCorrection(gamma)
MCreator.result_image = result_image
MCreator.alpha_blending(image_side)
MCreator.mod_intensity(image_side)
# saving image
MDisplay.saveImage()
else:
print(f"Failed to read the image (ImageSide={image_side}).")
mainDisplay.py: Displays the result¶
#!/usr/bin/env python3
#-*- coding: utf-8 -*-
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
@file
@brief This script defines the MainDisplay class, which handles reading, setting, and displaying images using the OpenCV library.
@date January 18, 2024
"""
import cv2
class MainDisplay:
"""
@brief The MainDisplay class provides functionalities for image handling and display.
@details
The class includes methods for:
- Reading an image from a specified path.
- Setting the result image.
- Displaying the result image using the OpenCV library.
@note
Ensure that the OpenCV library is installed (`pip install opencv-python`) before using this class.
@date January 18, 2024
"""
def __init__(self):
"""
@brief Initializes a MainDisplay object.
@details
The result_image attribute is initialized to None.
"""
self.result_image = None
def readImage(self, image_path):
"""
@brief Reads an image from the specified path.
@param image_path: The path to the image file.
@return The read image.
"""
image = cv2.imread(image_path)
return image
def setImage(self, image):
"""
@brief Sets the result image.
@param image: The image to set as the result image.
@return The set result image.
"""
self.result_image = image
return self.result_image
def saveImage(self):
"""
@brief Displays and saves the result image.
@details
The result image is displayed in a window with the window name indicating the displayed image.
The window remains open until a key is pressed. Then, it is closed, and the program continues.
@note
Ensure that the OpenCV window is closed before proceeding with the execution of other code.
@warning
This method uses blocking code (cv2.waitKey(0)) that might lead to issues in certain scenarios.
"""
# display image. (window name, image to display)
cv2.imshow(f"Displaying {self.result_image}", self.result_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
Updated by Ayato KOTSUGI over 1 year ago · 8 revisions