Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- b,g,r = cv2.split(im)
- dc = cv2.min(cv2.min(r,g),b);
- kernel = cv2.getStructuringElement(cv2.MORPH_RECT,(sz,sz))
- dark = cv2.erode(dc,kernel)
- return dark
- [h,w] = im.shape[:2]
- imsz = h*w
- numpx = int(max(math.floor(imsz/1000),1))
- darkvec = dark.reshape(imsz,1);
- imvec = im.reshape(imsz,3);
- indices = darkvec.argsort();
- indices = indices[imsz-numpx::]
- atmsum = np.zeros([1,3])
- for ind in range(1,numpx):
- atmsum = atmsum + imvec[indices[ind]]
- A = atmsum / numpx;
- return A
- omega = 0.95;
- transmission = 1 - omega*DarkChannel(im,sz);
- return transmission
- mean_I = cv2.boxFilter(im,cv2.CV_64F,(r,r));
- mean_p = cv2.boxFilter(p, cv2.CV_64F,(r,r));
- mean_Ip = cv2.boxFilter(im*p,cv2.CV_64F,(r,r));
- cov_Ip = mean_Ip - mean_I*mean_p;
- mean_II = cv2.boxFilter(im*im,cv2.CV_64F,(r,r));
- var_I = mean_II - mean_I*mean_I;
- a = cov_Ip/(var_I + eps);
- b = mean_p - a*mean_I;
- mean_a = cv2.boxFilter(a,cv2.CV_64F,(r,r));
- mean_b = cv2.boxFilter(b,cv2.CV_64F,(r,r));
- q = mean_a*im + mean_b;
- return q;
- gray = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY);
- gray = np.float64(gray)/255;
- r = 60;
- eps = 0.0001;
- t = Guidedfilter(gray,et,r,eps);
- return t;
- J = np.empty(im.shape,im.dtype);
- t = cv2.max(t,tx);
- for ind in range(0,3):
- J[:,:,ind] = (im[:,:,ind]-A[0,ind])/t + A[0,ind]
- return J
- tx = 0.55
- r_object = tx*abs(J - A)
- return r_object
- import sys
- try:
- fn = sys.argv[1]
- except:
- fn = 'pumpkins.jpg'
- def nothing(*argv):
- pass
- src = cv2.imread(fn);
- I = src.astype('float64')/255;
- dark = DarkChannel(I,15);
- A = AtmLight(I,dark);
- te = TransmissionEstimate(I,15);
- t = TransmissionRefine(src,te);
- J = Recover(I,t,A,0.55);
- r_origin = r_origin(I, A)
- cv2.imshow("Orginal", I)
- cv2.imshow("r_object ", r_object)
- cv2.waitKey(0);
Add Comment
Please, Sign In to add comment