import os import numpy as np import cv2 from skimage.restoration import estimate_sigma import logging def brightness_check(image,thresh=0.37): L,A,B = cv2.split(cv2.cvtColor(image,cv2.COLOR_BGR2LAB)) norm_L = L/np.max(L) L_mean = np.mean(norm_L) if L_mean > thresh: return "Image is bright enough to process object detection and segmentation task" else: return "image is not bright enough to process object detection and segmentation task " def gaussian_noise_check(img,threshould=250): # compute the Laplacian of the image and then return the focus # measure, which is simply the variance of the Laplacian gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY) laplacian_value = cv2.Laplacian(gray, cv2.CV_64F).var() logging.info(laplacian_value) if laplacian_value <= threshould: return "There is Blur/Gaussian noise in the image" elif laplacian_value <= 3*threshould: return " There is Blur/Gaussian noise in few regions of the image." elif laplacian_value >= 3*threshould: return "Image has high sharpness , no need to process futher." def snr_check(image): snr_text = None snr_value = estimate_sigma(cv2.cvtColor(image,cv2.COLOR_RGB2GRAY), average_sigmas=False) logging.info(snr_value) if snr_value > 1 : snr_text = "SnR is greater than 1 meaning : image has less noise " else: snr_text = "SnR is less than 1 Meaning : image has noise , it needs to be processed . " return snr_text