Python cv2.CV_8U Examples
The following are 22
code examples of cv2.CV_8U().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
cv2
, or try the search function
.
Example #1
Source File: cartoonizing.py From Mastering-OpenCV-4-with-Python with MIT License | 6 votes |
def sketch_image(img): """Sketches the image applying a laplacian operator to detect the edges""" # Convert to gray scale img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # Apply median filter img_gray = cv2.medianBlur(img_gray, 5) # Detect edges using cv2.Laplacian() edges = cv2.Laplacian(img_gray, cv2.CV_8U, ksize=5) # Threshold the edges image: ret, thresholded = cv2.threshold(edges, 70, 255, cv2.THRESH_BINARY_INV) return thresholded
Example #2
Source File: pi_NCS2_USB_cam_threaded_faces.py From RPi3_NCS2 with Apache License 2.0 | 6 votes |
def classify_frame(net, inputQueue, outputQueue): # keep looping while True: # check to see if there is a frame in our input queue if not inputQueue.empty(): # grab the frame from the input queue, resize it, and # construct a blob from it frame = inputQueue.get() frame = cv2.resize(frame, (300, 300)) blob = cv2.dnn.blobFromImage(frame, size=(300, 300), ddepth=cv2.CV_8U) net.setInput(blob) out = net.forward() # write the detections to the output queue outputQueue.put(out) # initialize the input queue (frames), output queue (out), # and the list of actual detections returned by the child process
Example #3
Source File: mat_mask_operations.py From OpenCV-Python-Tutorial with MIT License | 6 votes |
def sharpen(my_image): my_image = cv2.cvtColor(my_image, cv2.CV_8U) height, width, n_channels = my_image.shape result = np.zeros(my_image.shape, my_image.dtype) ## [basic_method_loop] for j in range (1, height-1): for i in range (1, width-1): for k in range (0, n_channels): sum = 5 * my_image[j, i, k] - my_image[j + 1, i, k] - my_image[j - 1, i, k]\ - my_image[j, i + 1, k] - my_image[j, i - 1, k]; if sum > 255: sum = 255 if sum < 0: sum = 0 result[j, i, k] = sum ## [basic_method_loop] return result ## [basic_method]
Example #4
Source File: FOVMultiWellsSplitter.py From tierpsy-tracker with MIT License | 6 votes |
def get_blur_im(self): """downscale and blur the image""" # preprocess image dwnscl_factor = 4; # Hydra images' shape is divisible by 4 blr_sigma = 17; # blur the image a bit, seems to work better new_shape = (self.img.shape[1]//dwnscl_factor, # as x,y, not row,columns self.img.shape[0]//dwnscl_factor) try: dwn_gray_im = cv2.resize(self.img, new_shape) except: pdb.set_trace() # apply blurring blur_im = cv2.GaussianBlur(dwn_gray_im, (blr_sigma,blr_sigma),0) # normalise between 0 and 255 blur_im = cv2.normalize(blur_im, None, alpha=0, beta=255, norm_type=cv2.NORM_MINMAX, dtype=cv2.CV_8U) return blur_im
Example #5
Source File: 05_cartoonizing.py From OpenCV-3-x-with-Python-By-Example with MIT License | 6 votes |
def cartoonize_image(img, ksize=5, sketch_mode=False): num_repetitions, sigma_color, sigma_space, ds_factor = 10, 5, 7, 4 # Convert image to grayscale img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # Apply median filter to the grayscale image img_gray = cv2.medianBlur(img_gray, 7) # Detect edges in the image and threshold it edges = cv2.Laplacian(img_gray, cv2.CV_8U, ksize=ksize) ret, mask = cv2.threshold(edges, 100, 255, cv2.THRESH_BINARY_INV) # 'mask' is the sketch of the image if sketch_mode: return cv2.cvtColor(mask, cv2.COLOR_GRAY2BGR) # Resize the image to a smaller size for faster computation img_small = cv2.resize(img, None, fx=1.0/ds_factor, fy=1.0/ds_factor, interpolation=cv2.INTER_AREA) # Apply bilateral filter the image multiple times for i in range(num_repetitions): img_small = cv2.bilateralFilter(img_small, ksize, sigma_color, sigma_space) img_output = cv2.resize(img_small, None, fx=ds_factor, fy=ds_factor, interpolation=cv2.INTER_LINEAR) dst = np.zeros(img_gray.shape) # Add the thick boundary lines to the image using 'AND' operator dst = cv2.bitwise_and(img_output, img_output, mask=mask) return dst
Example #6
Source File: inference_utils.py From rpg_e2vid with GNU General Public License v3.0 | 5 votes |
def merge_channels_into_color_image(channels): """ Combine a full resolution grayscale reconstruction and four color channels at half resolution into a color image at full resolution. :param channels: dictionary containing the four color reconstructions (at quarter resolution), and the full resolution grayscale reconstruction. :return a color image at full resolution """ with Timer('Merge color channels'): assert('R' in channels) assert('G' in channels) assert('W' in channels) assert('B' in channels) assert('grayscale' in channels) # upsample each channel independently for channel in ['R', 'G', 'W', 'B']: channels[channel] = cv2.resize(channels[channel], dsize=None, fx=2, fy=2, interpolation=cv2.INTER_LINEAR) # Shift the channels so that they all have the same origin channels['B'] = shift_image(channels['B'], dx=1, dy=1) channels['G'] = shift_image(channels['G'], dx=1, dy=0) channels['W'] = shift_image(channels['W'], dx=0, dy=1) # reconstruct the color image at half the resolution using the reconstructed channels RGBW reconstruction_bgr = np.dstack([channels['B'], cv2.addWeighted(src1=channels['G'], alpha=0.5, src2=channels['W'], beta=0.5, gamma=0.0, dtype=cv2.CV_8U), channels['R']]) reconstruction_grayscale = channels['grayscale'] # combine the full res grayscale resolution with the low res to get a full res color image upsampled_img = upsample_color_image(reconstruction_grayscale, reconstruction_bgr) return upsampled_img return upsampled_img
Example #7
Source File: video.py From cv with MIT License | 5 votes |
def cartoonize_image(img, ds_factor=4, sketch_mode=False): #convert to gray scale img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) #apply median filter img_gray = cv2.medianBlur(img_gray, 7) #detect edges and threshold the imag edges = cv2.Laplacian(img_gray, cv2.CV_8U, ksize=5) ret, mask = cv2.threshold(edges, 100, 255, cv2.THRESH_BINARY_INV) #mask is the sketch of the image if sketch_mode: return cv2.cvtColor(mask, cv2.COLOR_GRAY2BGR) img_small = cv2.resize(img, None, fx=1.0/ds_factor, fy=1.0/ds_factor, interpolation = cv2.INTER_AREA) num_repetitions = 10 sigma_color = 5 sigma_space = 7 size = 5 #apply bilateral filter multiple times for i in range(num_repetitions): img_small = cv2.bilateralFilter(img_small, size, sigma_color, sigma_space) img_output = cv2.resize(img_small, None, fx=ds_factor, fy=ds_factor, interpolation=cv2.INTER_LINEAR) dst = np.zeros(img_gray.shape) dst = cv2.bitwise_and(img_output, img_output, mask=mask) return dst
Example #8
Source File: TextDetect.py From text-detection with BSD 3-Clause "New" or "Revised" License | 5 votes |
def text_detect(img,ele_size=(8,2)): # if len(img.shape)==3: img = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) img_sobel = cv2.Sobel(img,cv2.CV_8U,1,0)#same as default,None,3,1,0,cv2.BORDER_DEFAULT) img_threshold = cv2.threshold(img_sobel,0,255,cv2.THRESH_OTSU+cv2.THRESH_BINARY) element = cv2.getStructuringElement(cv2.MORPH_RECT,ele_size) img_threshold = cv2.morphologyEx(img_threshold[1],cv2.MORPH_CLOSE,element) res = cv2.findContours(img_threshold, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE) if cv2.__version__.split(".")[0] == '3': _, contours, hierarchy = res else: contours, hierarchy = res Rect = [cv2.boundingRect(i) for i in contours if i.shape[0]>100] RectP = [(int(i[0]-i[2]*0.08),int(i[1]-i[3]*0.08),int(i[0]+i[2]*1.1),int(i[1]+i[3]*1.1)) for i in Rect] return RectP
Example #9
Source File: crop_imgs.py From TENet with MIT License | 5 votes |
def worker(path, select_folder, waste_img_folder, crop_sz, stride, thres_sz, cont_var_thresh, freq_var_thresh): img_name = os.path.basename(path) img = cv2.imread(path, cv2.IMREAD_UNCHANGED) h, w, c = img.shape h_space = np.arange(0, h - crop_sz + 1, stride) if h - (h_space[-1] + crop_sz) > thres_sz: h_space = np.append(h_space, h - crop_sz) w_space = np.arange(0, w - crop_sz + 1, stride) if w - (w_space[-1] + crop_sz) > thres_sz: w_space = np.append(w_space, w - crop_sz) index = 0 for x in h_space: for y in w_space: index += 1 patch_name = img_name.replace('.png', '_s{:05d}.png'.format(index)) patch = img[x:x + crop_sz, y:y + crop_sz, :] im_gray = patch[:, :, 1] [mean, var] = cv2.meanStdDev(im_gray) freq_var = cv2.Laplacian(im_gray, cv2.CV_8U).var() if var > cont_var_thresh and freq_var>freq_var_thresh: cv2.imwrite(os.path.join(select_folder, patch_name), patch) else: cv2.imwrite(os.path.join(waste_img_folder, patch_name), patch) return 'Processing {:s} ...'.format(img_name)
Example #10
Source File: main.py From Traffic-Sign-Detection with MIT License | 5 votes |
def LaplacianOfGaussian(image): LoG_image = cv2.GaussianBlur(image, (3,3), 0) # paramter gray = cv2.cvtColor( LoG_image, cv2.COLOR_BGR2GRAY) LoG_image = cv2.Laplacian( gray, cv2.CV_8U,3,3,2) # parameter LoG_image = cv2.convertScaleAbs(LoG_image) return LoG_image
Example #11
Source File: pipline.py From lpr with Apache License 2.0 | 5 votes |
def verticalEdgeDetection(image): image_sobel = cv2.Sobel(image.copy(),cv2.CV_8U,1,0) # image = auto_canny(image_sobel) # img_sobel, CV_8U, 1, 0, 3, 1, 0, BORDER_DEFAULT # canny_image = auto_canny(image) flag,thres = cv2.threshold(image_sobel,0,255,cv2.THRESH_OTSU|cv2.THRESH_BINARY) print(flag) flag,thres = cv2.threshold(image_sobel,int(flag*0.7),255,cv2.THRESH_BINARY) # thres = simpleThres(image_sobel) kernal = np.ones(shape=(3,15)) thres = cv2.morphologyEx(thres,cv2.MORPH_CLOSE,kernal) return thres #确定粗略的左右边界
Example #12
Source File: dataset.py From stereo_ptam with GNU General Public License v3.0 | 5 votes |
def __init__(self, width, height, intrinsic_matrix, undistort_rectify=False, extrinsic_matrix=None, distortion_coeffs=None, rectification_matrix=None, projection_matrix=None): self.width = width self.height = height self.intrinsic_matrix = intrinsic_matrix self.extrinsic_matrix = extrinsic_matrix self.distortion_coeffs = distortion_coeffs self.rectification_matrix = rectification_matrix self.projection_matrix = projection_matrix self.undistort_rectify = undistort_rectify self.fx = intrinsic_matrix[0, 0] self.fy = intrinsic_matrix[1, 1] self.cx = intrinsic_matrix[0, 2] self.cy = intrinsic_matrix[1, 2] if undistort_rectify: self.remap = cv2.initUndistortRectifyMap( cameraMatrix=self.intrinsic_matrix, distCoeffs=self.distortion_coeffs, R=self.rectification_matrix, newCameraMatrix=self.projection_matrix, size=(width, height), m1type=cv2.CV_8U) else: self.remap = None
Example #13
Source File: class_PlateDetection.py From ALPR_System with Apache License 2.0 | 5 votes |
def preprocess(self, input_img): imgBlurred = cv2.GaussianBlur(input_img, (7, 7), 0) # old window was (5,5) gray = cv2.cvtColor(imgBlurred, cv2.COLOR_BGR2GRAY) # convert to gray sobelx = cv2.Sobel(gray, cv2.CV_8U, 1, 0, ksize=3) # sobelX to get the vertical edges ret2, threshold_img = cv2.threshold(sobelx, 0, 255, cv2.THRESH_BINARY+cv2.THRESH_OTSU) element = self.element_structure morph_img_threshold = threshold_img.copy() cv2.morphologyEx(src=threshold_img, op=cv2.MORPH_CLOSE, kernel=element, dst=morph_img_threshold) return morph_img_threshold
Example #14
Source File: blend.py From imgaug with MIT License | 4 votes |
def _blend_alpha_uint8_elementwise_(image_fg, image_bg, alphas): betas = 1.0 - alphas is_2d = (alphas.ndim == 2 or alphas.shape[2] == 1) area = image_fg.shape[0] * image_fg.shape[1] if is_2d and area >= 64*64: if alphas.ndim == 3: alphas = alphas[:, :, 0] betas = betas[:, :, 0] result = [] for c in range(image_fg.shape[2]): image_fg_mul = image_fg[:, :, c] image_bg_mul = image_bg[:, :, c] image_fg_mul = cv2.multiply(image_fg_mul, alphas, dtype=cv2.CV_8U) image_bg_mul = cv2.multiply(image_bg_mul, betas, dtype=cv2.CV_8U) image_fg_mul = cv2.add(image_fg_mul, image_bg_mul, dst=image_fg_mul) result.append(image_fg_mul) image_blend = _merge_channels(result, image_fg.ndim == 3) return image_blend else: if alphas.ndim == 2: alphas = alphas[..., np.newaxis] betas = betas[..., np.newaxis] if alphas.shape[2] != image_fg.shape[2]: alphas = np.tile(alphas, (1, 1, image_fg.shape[2])) betas = np.tile(betas, (1, 1, image_fg.shape[2])) alphas = alphas.ravel() betas = betas.ravel() input_shape = image_fg.shape image_fg_mul = image_fg.ravel() image_bg_mul = image_bg.ravel() image_fg_mul = cv2.multiply( image_fg_mul, alphas, dtype=cv2.CV_8U, dst=image_fg_mul ) image_bg_mul = cv2.multiply( image_bg_mul, betas, dtype=cv2.CV_8U, dst=image_bg_mul ) image_fg_mul = cv2.add(image_fg_mul, image_bg_mul, dst=image_fg_mul) return image_fg_mul.reshape(input_shape) # Added in 0.5.0. # (Extracted from blend_alpha().)
Example #15
Source File: spfunctions.py From spfeas with MIT License | 4 votes |
def convolve_gabor(bd, image_min, image_max, scales): """ Convolves an image with a series of Gabor kernels Args: bd (2d array) image_min (int or float) image_max (int or float) scales (1d array like) """ if bd.dtype != 'uint8': bd = np.uint8(rescale_intensity(bd, in_range=(image_min, image_max), out_range=(0, 255))) # Each set of Gabor kernels # has 8 orientations. out_block = np.empty((8*len(scales), bd.shape[0], bd.shape[1]), dtype='uint8') ki = 0 for scale in scales: # Check for even or # odd scale size. if scale % 2 == 0: ssub = 1 else: ssub = 0 gabor_kernels = prep_gabor(kernel_size=(scale-ssub, scale-ssub)) for kernel in gabor_kernels: out_block[ki] = cv2.filter2D(bd, cv2.CV_8U, kernel) ki += 1 return out_block
Example #16
Source File: fix_img_address_unit.py From 2019-CCF-BDCI-OCR-MCZJ-OCR-IdentificationIDElement with MIT License | 4 votes |
def detect_fn(img, img_name, img_save_path): resize_img = cv2.resize(img, (int(2.0 * img.shape[1]), int(2.0 * img.shape[0])), interpolation=cv2.INTER_CUBIC) img = preprocess_img(img, img_name) # cv2.imwrite(img_save_path + img_name + '_processed.jpg', img) gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) sobel = cv2.Sobel(gray, cv2.CV_8U, 1, 0, ksize=3) # 二值化 ret, binary = cv2.threshold(sobel, 0, 255, cv2.THRESH_OTSU + cv2.THRESH_BINARY) element1 = cv2.getStructuringElement(cv2.MORPH_RECT, (16, 6)) element2 = cv2.getStructuringElement(cv2.MORPH_RECT, (13, 4)) # 两个参数可调 # 膨胀一次,让轮廓突出 dilation = cv2.dilate(binary, element2, iterations=1) # 腐蚀一次,去掉细节,如表格线等。注意这里去掉的是竖直的线 erosion = cv2.erode(dilation, element1, iterations=1) dilation2 = cv2.dilate(erosion, element2, iterations=2) # cv2.imwrite(img_save_path + img_name + '_dilation.jpg', dilation2) region = [] # 查找轮廓 contours, hierarchy = cv2.findContours(dilation2, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) # 利用以上函数可以得到多个轮廓区域,存在一个列表中。 # 筛选那些面积小的 for i in range(len(contours)): cnt = contours[i] area = cv2.contourArea(cnt) if (area < 50): continue # 找到最小的矩形,该矩形可能有方向 rect = cv2.minAreaRect(cnt) # box是四个点的坐标 box = cv2.boxPoints(rect) box = np.int0(box) # 计算高和宽 height = abs(box[0][1] - box[2][1]) width = abs(box[0][0] - box[2][0]) # 筛选那些太细的矩形,留下扁的 if 25 < height < 80 and width > 25 and height < width * 1.3: region.append(box) max_x = 0 for box in region: # 每个box是左下,左上,右上,右下坐标 for box_p in box: if box_p[0] > max_x: max_x = box_p[0] h, w, c = resize_img.shape return resize_img[0:h, 0:min(max_x + 50, w)]
Example #17
Source File: object_detection.py From lightnet with MIT License | 4 votes |
def processingThreadBody(): global processedFramesQueue, predictionsQueue, args, process futureOutputs = [] while process: # Get a next frame frame = None try: frame = framesQueue.get_nowait() if args.async: if len(futureOutputs) == args.async: frame = None # Skip the frame else: framesQueue.queue.clear() # Skip the rest of frames except queue.Empty: pass if not frame is None: frameHeight = frame.shape[0] frameWidth = frame.shape[1] # Create a 4D blob from a frame. inpWidth = args.width if args.width else frameWidth inpHeight = args.height if args.height else frameHeight blob = cv.dnn.blobFromImage(frame, size=(inpWidth, inpHeight), swapRB=args.rgb, ddepth=cv.CV_8U) processedFramesQueue.put(frame) # Run a model net.setInput(blob, scalefactor=args.scale, mean=args.mean) if net.getLayer(0).outputNameToIndex('im_info') != -1: # Faster-RCNN or R-FCN frame = cv.resize(frame, (inpWidth, inpHeight)) net.setInput(np.array([[inpHeight, inpWidth, 1.6]], dtype=np.float32), 'im_info') if args.async: futureOutputs.append(net.forwardAsync()) else: outs = net.forward(outNames) predictionsQueue.put(np.copy(outs)) while futureOutputs and futureOutputs[0].wait_for(0): out = futureOutputs[0].get() predictionsQueue.put(np.copy([out])) del futureOutputs[0]
Example #18
Source File: make_imagenet_c_inception.py From robustness with Apache License 2.0 | 4 votes |
def spatter(x, severity=1): c = [(0.65,0.3,4,0.69,0.9,0), (0.65,0.3,3.5,0.68,0.9,0), (0.65,0.3,3,0.68,0.8,0), (0.65,0.3,1.2,0.65,1.8,1), (0.67,0.4,1.2,0.65,1.8,1)][severity - 1] x = np.array(x, dtype=np.float32) / 255. liquid_layer = np.random.normal(size=x.shape[:2], loc=c[0], scale=c[1]) liquid_layer = gaussian(liquid_layer, sigma=c[2]) liquid_layer[liquid_layer < c[3]] = 0 if c[5] == 0: liquid_layer = (liquid_layer * 255).astype(np.uint8) dist = 255 - cv2.Canny(liquid_layer, 50, 150) dist = cv2.distanceTransform(dist, cv2.DIST_L2, 5) _, dist = cv2.threshold(dist, 20, 20, cv2.THRESH_TRUNC) dist = cv2.blur(dist, (3, 3)).astype(np.uint8) dist = cv2.equalizeHist(dist) # ker = np.array([[-1,-2,-3],[-2,0,0],[-3,0,1]], dtype=np.float32) # ker -= np.mean(ker) ker = np.array([[-2, -1, 0], [-1, 1, 1], [0, 1, 2]]) dist = cv2.filter2D(dist, cv2.CV_8U, ker) dist = cv2.blur(dist, (3, 3)).astype(np.float32) m = cv2.cvtColor(liquid_layer * dist, cv2.COLOR_GRAY2BGRA) m /= np.max(m, axis=(0, 1)) m *= c[4] # water is pale turqouise color = np.concatenate((175 / 255. * np.ones_like(m[..., :1]), 238 / 255. * np.ones_like(m[..., :1]), 238 / 255. * np.ones_like(m[..., :1])), axis=2) color = cv2.cvtColor(color, cv2.COLOR_BGR2BGRA) x = cv2.cvtColor(x, cv2.COLOR_BGR2BGRA) return cv2.cvtColor(np.clip(x + m * color, 0, 1), cv2.COLOR_BGRA2BGR) * 255 else: m = np.where(liquid_layer > c[3], 1, 0) m = gaussian(m.astype(np.float32), sigma=c[4]) m[m < 0.8] = 0 # m = np.abs(m) ** (1/c[4]) # mud brown color = np.concatenate((63 / 255. * np.ones_like(x[..., :1]), 42 / 255. * np.ones_like(x[..., :1]), 20 / 255. * np.ones_like(x[..., :1])), axis=2) color *= m[..., np.newaxis] x *= (1 - m[..., np.newaxis]) return np.clip(x + color, 0, 1) * 255
Example #19
Source File: make_tinyimagenet_c.py From robustness with Apache License 2.0 | 4 votes |
def spatter(x, severity=1): c = [(0.62,0.1,0.7,0.7,0.6,0), (0.65,0.1,0.8,0.7,0.6,0), (0.65,0.3,1,0.69,0.6,0), (0.65,0.1,0.7,0.68,0.6,1), (0.65,0.1,0.5,0.67,0.6,1)][severity - 1] x = np.array(x, dtype=np.float32) / 255. liquid_layer = np.random.normal(size=x.shape[:2], loc=c[0], scale=c[1]) liquid_layer = gaussian(liquid_layer, sigma=c[2]) liquid_layer[liquid_layer < c[3]] = 0 if c[5] == 0: liquid_layer = (liquid_layer * 255).astype(np.uint8) dist = 255 - cv2.Canny(liquid_layer, 50, 150) dist = cv2.distanceTransform(dist, cv2.DIST_L2, 5) _, dist = cv2.threshold(dist, 20, 20, cv2.THRESH_TRUNC) dist = cv2.blur(dist, (3, 3)).astype(np.uint8) dist = cv2.equalizeHist(dist) # ker = np.array([[-1,-2,-3],[-2,0,0],[-3,0,1]], dtype=np.float32) # ker -= np.mean(ker) ker = np.array([[-2, -1, 0], [-1, 1, 1], [0, 1, 2]]) dist = cv2.filter2D(dist, cv2.CV_8U, ker) dist = cv2.blur(dist, (3, 3)).astype(np.float32) m = cv2.cvtColor(liquid_layer * dist, cv2.COLOR_GRAY2BGRA) m /= np.max(m, axis=(0, 1)) m *= c[4] # water is pale turqouise color = np.concatenate((175 / 255. * np.ones_like(m[..., :1]), 238 / 255. * np.ones_like(m[..., :1]), 238 / 255. * np.ones_like(m[..., :1])), axis=2) color = cv2.cvtColor(color, cv2.COLOR_BGR2BGRA) x = cv2.cvtColor(x, cv2.COLOR_BGR2BGRA) return cv2.cvtColor(np.clip(x + m * color, 0, 1), cv2.COLOR_BGRA2BGR) * 255 else: m = np.where(liquid_layer > c[3], 1, 0) m = gaussian(m.astype(np.float32), sigma=c[4]) m[m < 0.8] = 0 # m = np.abs(m) ** (1/c[4]) # mud brown color = np.concatenate((63 / 255. * np.ones_like(x[..., :1]), 42 / 255. * np.ones_like(x[..., :1]), 20 / 255. * np.ones_like(x[..., :1])), axis=2) color *= m[..., np.newaxis] x *= (1 - m[..., np.newaxis]) return np.clip(x + color, 0, 1) * 255
Example #20
Source File: make_cifar_c.py From robustness with Apache License 2.0 | 4 votes |
def spatter(x, severity=1): c = [(0.62,0.1,0.7,0.7,0.5,0), (0.65,0.1,0.8,0.7,0.5,0), (0.65,0.3,1,0.69,0.5,0), (0.65,0.1,0.7,0.69,0.6,1), (0.65,0.1,0.5,0.68,0.6,1)][severity - 1] x = np.array(x, dtype=np.float32) / 255. liquid_layer = np.random.normal(size=x.shape[:2], loc=c[0], scale=c[1]) liquid_layer = gaussian(liquid_layer, sigma=c[2]) liquid_layer[liquid_layer < c[3]] = 0 if c[5] == 0: liquid_layer = (liquid_layer * 255).astype(np.uint8) dist = 255 - cv2.Canny(liquid_layer, 50, 150) dist = cv2.distanceTransform(dist, cv2.DIST_L2, 5) _, dist = cv2.threshold(dist, 20, 20, cv2.THRESH_TRUNC) dist = cv2.blur(dist, (3, 3)).astype(np.uint8) dist = cv2.equalizeHist(dist) # ker = np.array([[-1,-2,-3],[-2,0,0],[-3,0,1]], dtype=np.float32) # ker -= np.mean(ker) ker = np.array([[-2, -1, 0], [-1, 1, 1], [0, 1, 2]]) dist = cv2.filter2D(dist, cv2.CV_8U, ker) dist = cv2.blur(dist, (3, 3)).astype(np.float32) m = cv2.cvtColor(liquid_layer * dist, cv2.COLOR_GRAY2BGRA) m /= np.max(m, axis=(0, 1)) m *= c[4] # water is pale turqouise color = np.concatenate((175 / 255. * np.ones_like(m[..., :1]), 238 / 255. * np.ones_like(m[..., :1]), 238 / 255. * np.ones_like(m[..., :1])), axis=2) color = cv2.cvtColor(color, cv2.COLOR_BGR2BGRA) x = cv2.cvtColor(x, cv2.COLOR_BGR2BGRA) return cv2.cvtColor(np.clip(x + m * color, 0, 1), cv2.COLOR_BGRA2BGR) * 255 else: m = np.where(liquid_layer > c[3], 1, 0) m = gaussian(m.astype(np.float32), sigma=c[4]) m[m < 0.8] = 0 # m = np.abs(m) ** (1/c[4]) # mud brown color = np.concatenate((63 / 255. * np.ones_like(x[..., :1]), 42 / 255. * np.ones_like(x[..., :1]), 20 / 255. * np.ones_like(x[..., :1])), axis=2) color *= m[..., np.newaxis] x *= (1 - m[..., np.newaxis]) return np.clip(x + color, 0, 1) * 255
Example #21
Source File: make_imagenet_c.py From robustness with Apache License 2.0 | 4 votes |
def spatter(x, severity=1): c = [(0.65, 0.3, 4, 0.69, 0.6, 0), (0.65, 0.3, 3, 0.68, 0.6, 0), (0.65, 0.3, 2, 0.68, 0.5, 0), (0.65, 0.3, 1, 0.65, 1.5, 1), (0.67, 0.4, 1, 0.65, 1.5, 1)][severity - 1] x = np.array(x, dtype=np.float32) / 255. liquid_layer = np.random.normal(size=x.shape[:2], loc=c[0], scale=c[1]) liquid_layer = gaussian(liquid_layer, sigma=c[2]) liquid_layer[liquid_layer < c[3]] = 0 if c[5] == 0: liquid_layer = (liquid_layer * 255).astype(np.uint8) dist = 255 - cv2.Canny(liquid_layer, 50, 150) dist = cv2.distanceTransform(dist, cv2.DIST_L2, 5) _, dist = cv2.threshold(dist, 20, 20, cv2.THRESH_TRUNC) dist = cv2.blur(dist, (3, 3)).astype(np.uint8) dist = cv2.equalizeHist(dist) # ker = np.array([[-1,-2,-3],[-2,0,0],[-3,0,1]], dtype=np.float32) # ker -= np.mean(ker) ker = np.array([[-2, -1, 0], [-1, 1, 1], [0, 1, 2]]) dist = cv2.filter2D(dist, cv2.CV_8U, ker) dist = cv2.blur(dist, (3, 3)).astype(np.float32) m = cv2.cvtColor(liquid_layer * dist, cv2.COLOR_GRAY2BGRA) m /= np.max(m, axis=(0, 1)) m *= c[4] # water is pale turqouise color = np.concatenate((175 / 255. * np.ones_like(m[..., :1]), 238 / 255. * np.ones_like(m[..., :1]), 238 / 255. * np.ones_like(m[..., :1])), axis=2) color = cv2.cvtColor(color, cv2.COLOR_BGR2BGRA) x = cv2.cvtColor(x, cv2.COLOR_BGR2BGRA) return cv2.cvtColor(np.clip(x + m * color, 0, 1), cv2.COLOR_BGRA2BGR) * 255 else: m = np.where(liquid_layer > c[3], 1, 0) m = gaussian(m.astype(np.float32), sigma=c[4]) m[m < 0.8] = 0 # m = np.abs(m) ** (1/c[4]) # mud brown color = np.concatenate((63 / 255. * np.ones_like(x[..., :1]), 42 / 255. * np.ones_like(x[..., :1]), 20 / 255. * np.ones_like(x[..., :1])), axis=2) color *= m[..., np.newaxis] x *= (1 - m[..., np.newaxis]) return np.clip(x + color, 0, 1) * 255
Example #22
Source File: corruptions.py From robustness with Apache License 2.0 | 4 votes |
def spatter(x, severity=1): c = [(0.65, 0.3, 4, 0.69, 0.6, 0), (0.65, 0.3, 3, 0.68, 0.6, 0), (0.65, 0.3, 2, 0.68, 0.5, 0), (0.65, 0.3, 1, 0.65, 1.5, 1), (0.67, 0.4, 1, 0.65, 1.5, 1)][severity - 1] x = np.array(x, dtype=np.float32) / 255. liquid_layer = np.random.normal(size=x.shape[:2], loc=c[0], scale=c[1]) liquid_layer = gaussian(liquid_layer, sigma=c[2]) liquid_layer[liquid_layer < c[3]] = 0 if c[5] == 0: liquid_layer = (liquid_layer * 255).astype(np.uint8) dist = 255 - cv2.Canny(liquid_layer, 50, 150) dist = cv2.distanceTransform(dist, cv2.DIST_L2, 5) _, dist = cv2.threshold(dist, 20, 20, cv2.THRESH_TRUNC) dist = cv2.blur(dist, (3, 3)).astype(np.uint8) dist = cv2.equalizeHist(dist) ker = np.array([[-2, -1, 0], [-1, 1, 1], [0, 1, 2]]) dist = cv2.filter2D(dist, cv2.CV_8U, ker) dist = cv2.blur(dist, (3, 3)).astype(np.float32) m = cv2.cvtColor(liquid_layer * dist, cv2.COLOR_GRAY2BGRA) m /= np.max(m, axis=(0, 1)) m *= c[4] # water is pale turqouise color = np.concatenate((175 / 255. * np.ones_like(m[..., :1]), 238 / 255. * np.ones_like(m[..., :1]), 238 / 255. * np.ones_like(m[..., :1])), axis=2) color = cv2.cvtColor(color, cv2.COLOR_BGR2BGRA) x = cv2.cvtColor(x, cv2.COLOR_BGR2BGRA) return cv2.cvtColor(np.clip(x + m * color, 0, 1), cv2.COLOR_BGRA2BGR) * 255 else: m = np.where(liquid_layer > c[3], 1, 0) m = gaussian(m.astype(np.float32), sigma=c[4]) m[m < 0.8] = 0 # mud brown color = np.concatenate((63 / 255. * np.ones_like(x[..., :1]), 42 / 255. * np.ones_like(x[..., :1]), 20 / 255. * np.ones_like(x[..., :1])), axis=2) color *= m[..., np.newaxis] x *= (1 - m[..., np.newaxis]) return np.clip(x + color, 0, 1) * 255