import numpy as np import cv2 from skimage.io import imread from skimage.transform import resize import pandas as pd from sklearn.preprocessing import MinMaxScaler from sklearn.model_selection import train_test_split, GridSearchCV def darkchannel(file1): img = imread(file1) img = resize(img, (512,512)) b,g,r = cv2.split(img) jx = cv2.min(cv2.min(r,g),b) kernel = cv2.getStructuringElement(cv2.MORPH_RECT,(64,64)) dark=cv2.erode(jx,kernel) size = img.shape[:2] k = int(0.001*np.prod(size)) idx = np.argpartition(-dark.ravel(),k)[:k] x, y = np.hsplit(np.column_stack(np.unravel_index(idx, size)), 2) A = np.array([img[x,y,0].max(), img[x,y,1].max(), img[x,y,2].max()]) zz = np.column_stack(np.unravel_index(idx, dark.shape)) x, y = np.hsplit(zz,2) norm_img = img / A b2,g2,r2= cv2.split(norm_img) jx2 = cv2.min(cv2.min(r2,g2),b2) kernel2 = cv2.getStructuringElement(cv2.MORPH_RECT,(64,64)) dark2=cv2.erode(jx2,kernel2) alpha_map=(1-0.95*dark2)*255 alpha_map = np.array(alpha_map) result=np.average(alpha_map) return alpha_map,result def sobel(img): img_color = imread(img) #img_color= resize(img_color,(512,512)) img_gray = cv2.cvtColor(img_color, cv2.COLOR_BGR2GRAY) img_sobel_x = cv2.Sobel(img_gray, cv2.CV_64F, 1, 0, ksize=3) img_sobel_x = cv2.convertScaleAbs(img_sobel_x) img_sobel_y = cv2.Sobel(img_gray, cv2.CV_64F, 0, 1, ksize=3) img_sobel_y = cv2.convertScaleAbs(img_sobel_y) img_sobel = cv2.addWeighted(img_sobel_x, 1, img_sobel_y, 1, 0) img_sobel=np.array(img_sobel) result=np.var(img_sobel) return result def mkdf(average,target,li_edge): df=pd.DataFrame({"average":average,"target":target, "edge":li_edge}) Y_data = df['target'] X_data = df.drop('target', axis = 1) X_train, X_test, Y_train, Y_test = train_test_split(X_data, Y_data, test_size=0.3) return X_train, X_test, Y_train, Y_test