import numpy as np
import scipy
import scipy.ndimage
import matplotlib
import matplotlib.colors
import cv2 as cv
import duo.core.duo_exception as de
#------------------------------------------------------------
#------------------------------------------------------------
[docs]class Enhance:
#------------------------------------------------------------
#------------------------------------------------------------
def __init__(self):
pass
#------------------------------------------------------------
#------------------------------------------------------------
[docs] def RemoveVerticalPartialVolumeEffect(self, image):
imageCopy = np.copy(image)
# gradY = cv.Laplacian(imageCopy, cv.CV_64F)
gradY = cv.Sobel(imageCopy, cv.CV_64F, 0, 1, ksize = 5)
threshold = (np.amax(gradY) - np.amin(gradY)) * 0.7 + np.amin(gradY)
imageCopy = np.where(gradY > threshold, np.amin(imageCopy), imageCopy)
return imageCopy
#------------------------------------------------------------
#------------------------------------------------------------
[docs] def Denoise(self, image, filterSize = 5):
imageCopy = np.copy(image)
imageCopy = scipy.ndimage.median_filter(imageCopy, size = filterSize)
return imageCopy