Source code for piscat.Visualization.contrast_adjustment
import cv2 as cv
from skimage import exposure
[docs]class ContrastAdjustment:
def __init__(self, video):
"""This class is used in the GUI to change the visualization's
brightness and contrast.
Parameters
----------
video: NDArray
Input video.
"""
self.video = video
[docs] def pixel_transforms(self, image, alpha, beta, min_intensity, max_intensity):
"""Using the value of the hyperparameters, adjust the brightness and
contrast of the current image.
Parameters
----------
image: NDArray
Input image (2D-Numpy).
alpha: float
Scale factor.
beta: float
Delta added to the scaled values.
min_intensity: float
Min intensity values of output image.
max_intensity: float
Max intensity values of output image.
Returns
-------
image_: NDArray
Output image (2D-Numpy)
"""
video_rescale = exposure.rescale_intensity(
image, out_range=(min_intensity, max_intensity)
)
image_ = cv.convertScaleAbs(video_rescale, alpha=alpha, beta=beta)
return image_
[docs] def auto_pixelTransforms(self, image):
"""
Adjusting the brightness and contrast of the current image automatically.
Parameters
----------
image: NDArray
Input image (2D-Numpy).
Returns
-------
image_: NDArray
Output image (2D-Numpy)
"""
min_intensity = image.min()
max_intensity = image.max()
alpha = 255 / (max_intensity - min_intensity)
beta = -min_intensity * alpha
return self.pixel_transforms(image, alpha, beta, min_intensity, max_intensity)