Guest User

Untitled

a guest
Apr 20th, 2018
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.71 KB | None | 0 0
  1. b,g,r = cv2.split(im)
  2. dc = cv2.min(cv2.min(r,g),b);
  3. kernel = cv2.getStructuringElement(cv2.MORPH_RECT,(sz,sz))
  4. dark = cv2.erode(dc,kernel)
  5. return dark
  6.  
  7. [h,w] = im.shape[:2]
  8. imsz = h*w
  9. numpx = int(max(math.floor(imsz/1000),1))
  10. darkvec = dark.reshape(imsz,1);
  11. imvec = im.reshape(imsz,3);
  12.  
  13. indices = darkvec.argsort();
  14. indices = indices[imsz-numpx::]
  15.  
  16. atmsum = np.zeros([1,3])
  17. for ind in range(1,numpx):
  18. atmsum = atmsum + imvec[indices[ind]]
  19.  
  20. A = atmsum / numpx;
  21. return A
  22.  
  23. omega = 0.95;
  24. transmission = 1 - omega*DarkChannel(im,sz);
  25. return transmission
  26.  
  27. mean_I = cv2.boxFilter(im,cv2.CV_64F,(r,r));
  28. mean_p = cv2.boxFilter(p, cv2.CV_64F,(r,r));
  29. mean_Ip = cv2.boxFilter(im*p,cv2.CV_64F,(r,r));
  30. cov_Ip = mean_Ip - mean_I*mean_p;
  31.  
  32. mean_II = cv2.boxFilter(im*im,cv2.CV_64F,(r,r));
  33. var_I = mean_II - mean_I*mean_I;
  34.  
  35. a = cov_Ip/(var_I + eps);
  36. b = mean_p - a*mean_I;
  37.  
  38. mean_a = cv2.boxFilter(a,cv2.CV_64F,(r,r));
  39. mean_b = cv2.boxFilter(b,cv2.CV_64F,(r,r));
  40.  
  41. q = mean_a*im + mean_b;
  42. return q;
  43.  
  44. gray = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY);
  45. gray = np.float64(gray)/255;
  46. r = 60;
  47. eps = 0.0001;
  48. t = Guidedfilter(gray,et,r,eps);
  49.  
  50. return t;
  51.  
  52. J = np.empty(im.shape,im.dtype);
  53. t = cv2.max(t,tx);
  54.  
  55. for ind in range(0,3):
  56. J[:,:,ind] = (im[:,:,ind]-A[0,ind])/t + A[0,ind]
  57.  
  58. return J
  59.  
  60. tx = 0.55
  61.  
  62. r_object = tx*abs(J - A)
  63. return r_object
  64.  
  65. import sys
  66.  
  67. try:
  68.  
  69. fn = sys.argv[1]
  70.  
  71. except:
  72.  
  73. fn = 'pumpkins.jpg'
  74.  
  75. def nothing(*argv):
  76.  
  77. pass
  78.  
  79. src = cv2.imread(fn);
  80.  
  81. I = src.astype('float64')/255;
  82.  
  83. dark = DarkChannel(I,15);
  84. A = AtmLight(I,dark);
  85. te = TransmissionEstimate(I,15);
  86. t = TransmissionRefine(src,te);
  87. J = Recover(I,t,A,0.55);
  88. r_origin = r_origin(I, A)
  89.  
  90.  
  91. cv2.imshow("Orginal", I)
  92. cv2.imshow("r_object ", r_object)
  93.  
  94.  
  95. cv2.waitKey(0);
Add Comment
Please, Sign In to add comment