def hls_unsharp_mask(image, amount, radius, threshold): sigma = 0.2 copy = cv2.cvtColor(image, cv2.COLOR_RGB2HLS) (h, l, s) = cv2.split(copy) blurred = filters.gaussian_blur(l, 2 * radius + 1, sigma) mask = cv2.absdiff(blurred, l) print 255.0 / mask.max() mask = np.array(mask * (255.0 / mask.max()), dtype="uint8") (dummy, mask) = cv2.threshold(mask, threshold, 255, cv2.THRESH_TOZERO) cv2.imshow("mask", mask) cv2.imshow("l before", l) corrected = filters.simplest_color_balance(l, 10, 10) # corrected = l * (1 + amount) - blurred * amount cv2.imshow("corrected", corrected) l = blend(l, corrected, mask) cv2.imshow("l after", l) copy = cv2.merge((h, l, s)) result = cv2.cvtColor(copy, cv2.COLOR_HLS2RGB) return result
def hls_unsharp_mask(image, amount, radius, threshold): sigma = 0.2 copy = cv2.cvtColor(image, cv2.COLOR_RGB2HLS) (h, l, s) = cv2.split(copy) blurred = filters.gaussian_blur(l, 2 * radius + 1, sigma) mask = cv2.absdiff(blurred, l) print 255.0 / mask.max() mask = np.array(mask * (255.0 / mask.max()), dtype='uint8') (dummy, mask) = cv2.threshold(mask, threshold, 255, cv2.THRESH_TOZERO) cv2.imshow('mask', mask) cv2.imshow('l before', l) corrected = filters.simplest_color_balance(l, 10, 10) #corrected = l * (1 + amount) - blurred * amount cv2.imshow('corrected', corrected) l = blend(l, corrected, mask) cv2.imshow('l after', l) copy = cv2.merge((h, l, s)) result = cv2.cvtColor(copy, cv2.COLOR_HLS2RGB) return result
def unsharp_mask(image, amount, radius, threshold): sigma = 0.15 copy = image.copy() cv2.imshow("copy", copy) converted = cv2.cvtColor(copy, cv2.COLOR_RGB2GRAY) blurred = filters.gaussian_blur(converted, 2 * radius + 1, sigma) cv2.imshow("blurred", blurred) # blurred = cv2.blur(converted, tuple([2*radius + 1]*2)) mask = cv2.absdiff(blurred, converted) mask = np.array(mask * (255.0 / mask.max()), dtype="uint8") (dummy, mask) = cv2.threshold(mask, threshold, 255, cv2.THRESH_TOZERO) cv2.imshow("mask", mask) corrected = filters.simplest_color_balance(copy, 15, 15, mask) # corrected = image.copy() * 0 print corrected # cv2.imshow('corrected', corrected) result = blend(copy, corrected, mask) # result = cv2.resize(image, (width, height)) return result
def unsharp_mask(image, amount, radius, threshold): sigma = 0.15 copy = image.copy() cv2.imshow('copy', copy) converted = cv2.cvtColor(copy, cv2.COLOR_RGB2GRAY) blurred = filters.gaussian_blur(converted, 2 * radius + 1, sigma) cv2.imshow('blurred', blurred) #blurred = cv2.blur(converted, tuple([2*radius + 1]*2)) mask = cv2.absdiff(blurred, converted) mask = np.array(mask * (255.0 / mask.max()), dtype='uint8') (dummy, mask) = cv2.threshold(mask, threshold, 255, cv2.THRESH_TOZERO) cv2.imshow('mask', mask) corrected = filters.simplest_color_balance(copy, 15, 15, mask) #corrected = image.copy() * 0 print corrected #cv2.imshow('corrected', corrected) result = blend(copy, corrected, mask) #result = cv2.resize(image, (width, height)) return result