Python cv2.BORDER_REPLICATE Examples
The following are 30
code examples of cv2.BORDER_REPLICATE().
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: AffineInvariantFeatures.py From DoNotSnap with GNU General Public License v3.0 | 7 votes |
def affine_skew(self, tilt, phi, img, mask=None): h, w = img.shape[:2] if mask is None: mask = np.zeros((h, w), np.uint8) mask[:] = 255 A = np.float32([[1, 0, 0], [0, 1, 0]]) if phi != 0.0: phi = np.deg2rad(phi) s, c = np.sin(phi), np.cos(phi) A = np.float32([[c, -s], [s, c]]) corners = [[0, 0], [w, 0], [w, h], [0, h]] tcorners = np.int32(np.dot(corners, A.T)) x, y, w, h = cv2.boundingRect(tcorners.reshape(1, -1, 2)) A = np.hstack([A, [[-x], [-y]]]) img = cv2.warpAffine(img, A, (w, h), flags=cv2.INTER_LINEAR, borderMode=cv2.BORDER_REPLICATE) if tilt != 1.0: s = 0.8*np.sqrt(tilt * tilt - 1) img = cv2.GaussianBlur(img, (0, 0), sigmaX=s, sigmaY=0.01) img = cv2.resize(img, (0, 0), fx=1.0 / tilt, fy=1.0, interpolation=cv2.INTER_NEAREST) A[0] /= tilt if phi != 0.0 or tilt != 1.0: h, w = img.shape[:2] mask = cv2.warpAffine(mask, A, (w, h), flags=cv2.INTER_NEAREST) Ai = cv2.invertAffineTransform(A) return img, mask, Ai
Example #2
Source File: geometry.py From petridishnn with MIT License | 6 votes |
def __init__(self, max_deg, center_range=(0, 1), interp=cv2.INTER_LINEAR, border=cv2.BORDER_REPLICATE, step_deg=None, border_value=0): """ Args: max_deg (float): max abs value of the rotation angle (in degree). center_range (tuple): (min, max) range of the random rotation center. interp: cv2 interpolation method border: cv2 border method step_deg (float): if not None, the stepping of the rotation angle. The rotation angle will be a multiple of step_deg. This option requires ``max_deg==180`` and step_deg has to be a divisor of 180) border_value: cv2 border value for border=cv2.BORDER_CONSTANT """ assert step_deg is None or (max_deg == 180 and max_deg % step_deg == 0) super(Rotation, self).__init__() self._init(locals())
Example #3
Source File: transforms.py From pytracking with GNU General Public License v3.0 | 6 votes |
def __init__(self, p_flip=0.0, max_rotation=0.0, max_shear=0.0, max_scale=0.0, max_ar_factor=0.0, border_mode='constant', pad_amount=0): super().__init__() self.p_flip = p_flip self.max_rotation = max_rotation self.max_shear = max_shear self.max_scale = max_scale self.max_ar_factor = max_ar_factor if border_mode == 'constant': self.border_flag = cv.BORDER_CONSTANT elif border_mode == 'replicate': self.border_flag == cv.BORDER_REPLICATE else: raise Exception self.pad_amount = pad_amount
Example #4
Source File: geometry.py From dataflow with Apache License 2.0 | 6 votes |
def __init__(self, max_deg, center_range=(0, 1), interp=cv2.INTER_LINEAR, border=cv2.BORDER_REPLICATE, step_deg=None, border_value=0): """ Args: max_deg (float): max abs value of the rotation angle (in degree). center_range (tuple): (min, max) range of the random rotation center. interp: cv2 interpolation method border: cv2 border method step_deg (float): if not None, the stepping of the rotation angle. The rotation angle will be a multiple of step_deg. This option requires ``max_deg==180`` and step_deg has to be a divisor of 180) border_value: cv2 border value for border=cv2.BORDER_CONSTANT """ assert step_deg is None or (max_deg == 180 and max_deg % step_deg == 0) super(Rotation, self).__init__() self._init(locals())
Example #5
Source File: geometry.py From ADL with MIT License | 6 votes |
def __init__(self, max_deg, center_range=(0, 1), interp=cv2.INTER_LINEAR, border=cv2.BORDER_REPLICATE, step_deg=None, border_value=0): """ Args: max_deg (float): max abs value of the rotation angle (in degree). center_range (tuple): (min, max) range of the random rotation center. interp: cv2 interpolation method border: cv2 border method step_deg (float): if not None, the stepping of the rotation angle. The rotation angle will be a multiple of step_deg. This option requires ``max_deg==180`` and step_deg has to be a divisor of 180) border_value: cv2 border value for border=cv2.BORDER_CONSTANT """ assert step_deg is None or (max_deg == 180 and max_deg % step_deg == 0) super(Rotation, self).__init__() self._init(locals())
Example #6
Source File: transforms.py From SSD-variants with MIT License | 6 votes |
def transform_state(t, **kwargs): if callable(t): t_vars = vars(t) if 'random_state' in kwargs and 'random' in t_vars: t.__dict__['random'] = kwargs['random_state'] support = ['fillval', 'anchor', 'prob', 'mean', 'std', 'outside'] for arg in kwargs: if arg in t_vars and arg in support: t.__dict__[arg] = kwargs[arg] if 'mode' in kwargs and 'mode' in t_vars: t.__dict__['mode'] = kwargs['mode'] if 'border' in kwargs and 'border' in t_vars: t.__dict__['border'] = BorderTypes.get(kwargs['border'], cv2.BORDER_REPLICATE) if 'transforms' in t_vars: t.__dict__['transforms'] = transforms_state(t.transforms, **kwargs) return t
Example #7
Source File: image_processing_common.py From tensorflow-litterbox with Apache License 2.0 | 6 votes |
def distort_affine_cv2(image, alpha_affine=10, random_state=None): if random_state is None: random_state = np.random.RandomState(None) shape = image.shape shape_size = shape[:2] center_square = np.float32(shape_size) // 2 square_size = min(shape_size) // 3 pts1 = np.float32([ center_square + square_size, [center_square[0] + square_size, center_square[1] - square_size], center_square - square_size]) pts2 = pts1 + random_state.uniform(-alpha_affine, alpha_affine, size=pts1.shape).astype(np.float32) M = cv2.getAffineTransform(pts1, pts2) distorted_image = cv2.warpAffine( image, M, shape_size[::-1], borderMode=cv2.BORDER_REPLICATE) #cv2.BORDER_REFLECT_101) return distorted_image
Example #8
Source File: dcf.py From open-vot with MIT License | 6 votes |
def _crop(self, image, center, size): corners = np.zeros(4, dtype=int) corners[:2] = np.floor(center - size / 2).astype(int) corners[2:] = corners[:2] + size pads = np.concatenate( (-corners[:2], corners[2:] - image.shape[1::-1])) pads = np.maximum(0, pads) if np.any(pads > 0): corners = np.concatenate(( corners[:2] + pads[:2], corners[2:] - pads[2:])).astype(int) patch = image[corners[1]:corners[3], corners[0]:corners[2]] if np.any(pads > 0): patch = cv2.copyMakeBorder( patch, pads[1], pads[3], pads[0], pads[2], borderType=cv2.BORDER_REPLICATE) return patch
Example #9
Source File: csk.py From open-vot with MIT License | 6 votes |
def _crop(self, image, center, size): corners = np.zeros(4, dtype=int) corners[:2] = np.floor(center - size / 2).astype(int) corners[2:] = corners[:2] + size pads = np.concatenate( (-corners[:2], corners[2:] - image.shape[1::-1])) pads = np.maximum(0, pads) if np.any(pads > 0): corners = np.concatenate(( corners[:2] + pads[:2], corners[2:] - pads[2:])).astype(int) patch = image[corners[1]:corners[3], corners[0]:corners[2]] if np.any(pads > 0): patch = cv2.copyMakeBorder( patch, pads[1], pads[3], pads[0], pads[2], borderType=cv2.BORDER_REPLICATE) return patch
Example #10
Source File: kcf.py From open-vot with MIT License | 6 votes |
def _crop(self, image, center, size): corners = np.zeros(4, dtype=int) corners[:2] = np.floor(center - size / 2).astype(int) corners[2:] = corners[:2] + size pads = np.concatenate( (-corners[:2], corners[2:] - image.shape[1::-1])) pads = np.maximum(0, pads) if np.any(pads > 0): corners = np.concatenate(( corners[:2] + pads[:2], corners[2:] - pads[2:])).astype(int) patch = image[corners[1]:corners[3], corners[0]:corners[2]] if np.any(pads > 0): patch = cv2.copyMakeBorder( patch, pads[1], pads[3], pads[0], pads[2], borderType=cv2.BORDER_REPLICATE) return patch
Example #11
Source File: dsst.py From open-vot with MIT License | 6 votes |
def _crop(self, image, center, size): corners = np.zeros(4, dtype=int) corners[:2] = np.floor(center - size / 2).astype(int) corners[2:] = corners[:2] + size pads = np.concatenate( (-corners[:2], corners[2:] - image.shape[1::-1])) pads = np.maximum(0, pads) if np.any(pads > 0): corners = np.concatenate(( corners[:2] + pads[:2], corners[2:] - pads[2:])).astype(int) patch = image[corners[1]:corners[3], corners[0]:corners[2]] if np.any(pads > 0): patch = cv2.copyMakeBorder( patch, pads[1], pads[3], pads[0], pads[2], borderType=cv2.BORDER_REPLICATE) return patch
Example #12
Source File: captchahelper.py From DL4CVStarterBundle with GNU General Public License v3.0 | 6 votes |
def preprocess(image, width, height): # Grab the dimensions of the image, then initialize the padding values (h, w) = image.shape[:2] # If the width is greater than the height then resize along the width if w > h: image = imutils.resize(image, width=width) # Otherwise, the height is greater than the width so resize along the height else: image = imutils.resize(image, height=height) # Determine the padding values for the width and height to obtain the target dimensions pad_w = int((width - image.shape[1]) / 2.0) pad_h = int((height - image.shape[0]) / 2.0) # Pad the image then apply one more resizing to handle any rounding issues image = cv2.copyMakeBorder(image, pad_h, pad_h, pad_w, pad_w, cv2.BORDER_REPLICATE) image = cv2.resize(image, (width, height)) # Return the pre-processed image return image
Example #13
Source File: captchahelper.py From DL4CVStarterBundle with GNU General Public License v3.0 | 6 votes |
def preprocess(image, width, height): # Grab the dimensions of the image, then initialize the padding values (h, w) = image.shape[:2] # If the width is greater than the height then resize along the width if w > h: image = imutils.resize(image, width=width) # Otherwise, the height is greater than the width so resize along the height else: image = imutils.resize(image, height=height) # Determine the padding values for the width and height to obtain the target dimensions pad_w = int((width - image.shape[1]) / 2.0) pad_h = int((height - image.shape[0]) / 2.0) # Pad the image then apply one more resizing to handle any rounding issues image = cv2.copyMakeBorder(image, pad_h, pad_h, pad_w, pad_w, cv2.BORDER_REPLICATE) image = cv2.resize(image, (width, height)) # Return the pre-processed image return image
Example #14
Source File: eval.py From DocProj with MIT License | 6 votes |
def padImg(img): ''' pad image twice. The first padding is to make sure the patches cover all image regions. The second padding is used for cropping the global patch. ''' H = img.shape[0] W = img.shape[1] globalFct = 4 patchRes = 256 ovlp = int(patchRes * 0.25) padH = (int((H - patchRes)/(patchRes - ovlp) + 1) * (patchRes - ovlp) + patchRes) - H padW = (int((W - patchRes)/(patchRes - ovlp) + 1) * (patchRes - ovlp) + patchRes) - W padding = int(patchRes * (globalFct - 1) / 2.0) padImg = cv2.copyMakeBorder(img, 0, padH, 0, padW, cv2.BORDER_REPLICATE) padImg = cv2.copyMakeBorder(padImg, padding, padding, padding, padding, cv2.BORDER_REPLICATE) return padImg
Example #15
Source File: transforms.py From SSD-variants with MIT License | 6 votes |
def __init__(self, tx=(-0.1, 0.1), ty=None, border='constant', fillval=0, anchor=None, random_state=np.random): if isinstance(tx, numbers.Number): tx = (-abs(tx), abs(tx)) assert isinstance(tx, tuple) and np.abs(tx).max() < 1 if ty is None: ty = tx elif isinstance(ty, numbers.Number): ty = (-abs(ty), abs(ty)) assert isinstance(ty, tuple) and np.abs(ty).max() < 1 self.tx, self.ty = tx, ty if isinstance(fillval, numbers.Number): fillval = [fillval] * 3 self.border = BorderTypes.get(border, cv2.BORDER_REPLICATE) self.fillval = fillval self.anchor = anchor self.random = random_state
Example #16
Source File: imgproc.py From ADL with MIT License | 5 votes |
def _augment(self, img, s): return np.reshape(cv2.GaussianBlur(img, s, sigmaX=0, sigmaY=0, borderType=cv2.BORDER_REPLICATE), img.shape)
Example #17
Source File: geometry.py From ADL with MIT License | 5 votes |
def __init__(self, scale=None, translate_frac=None, rotate_max_deg=0.0, shear=0.0, interp=cv2.INTER_LINEAR, border=cv2.BORDER_REPLICATE, border_value=0): """ Args: scale (tuple of 2 floats): scaling factor interval, e.g (a, b), then scale is randomly sampled from the range a <= scale <= b. Will keep original scale by default. translate_frac (tuple of 2 floats): tuple of max abs fraction for horizontal and vertical translation. For example translate_frac=(a, b), then horizontal shift is randomly sampled in the range 0 < dx < img_width * a and vertical shift is randomly sampled in the range 0 < dy < img_height * b. Will not translate by default. shear (float): max abs shear value in degrees between 0 to 180 interp: cv2 interpolation method border: cv2 border method border_value: cv2 border value for border=cv2.BORDER_CONSTANT """ if scale is not None: assert isinstance(scale, tuple) and len(scale) == 2, \ "Argument scale should be a tuple of two floats, e.g (a, b)" if translate_frac is not None: assert isinstance(translate_frac, tuple) and len(translate_frac) == 2, \ "Argument translate_frac should be a tuple of two floats, e.g (a, b)" assert shear >= 0.0, "Argument shear should be between 0.0 and 180.0" super(Affine, self).__init__() self._init(locals())
Example #18
Source File: face_mask.py From portrait_matting with GNU General Public License v3.0 | 5 votes |
def _align_face_projection(img, src_lmk, dst_lmk, size=None): H, _ = cv2.findHomography(src_lmk, dst_lmk) if size is None: size = (img.shape[1], img.shape[0]) # TODO: Border method aligned_img = cv2.warpPerspective(img, H, size, borderMode=cv2.BORDER_REPLICATE) return aligned_img
Example #19
Source File: geometry.py From petridishnn with MIT License | 5 votes |
def __init__(self, scale=None, translate_frac=None, rotate_max_deg=0.0, shear=0.0, interp=cv2.INTER_LINEAR, border=cv2.BORDER_REPLICATE, border_value=0): """ Args: scale (tuple of 2 floats): scaling factor interval, e.g (a, b), then scale is randomly sampled from the range a <= scale <= b. Will keep original scale by default. translate_frac (tuple of 2 floats): tuple of max abs fraction for horizontal and vertical translation. For example translate_frac=(a, b), then horizontal shift is randomly sampled in the range 0 < dx < img_width * a and vertical shift is randomly sampled in the range 0 < dy < img_height * b. Will not translate by default. shear (float): max abs shear value in degrees between 0 to 180 interp: cv2 interpolation method border: cv2 border method border_value: cv2 border value for border=cv2.BORDER_CONSTANT """ if scale is not None: assert isinstance(scale, tuple) and len(scale) == 2, \ "Argument scale should be a tuple of two floats, e.g (a, b)" if translate_frac is not None: assert isinstance(translate_frac, tuple) and len(translate_frac) == 2, \ "Argument translate_frac should be a tuple of two floats, e.g (a, b)" assert shear >= 0.0, "Argument shear should be between 0.0 and 180.0" super(Affine, self).__init__() self._init(locals())
Example #20
Source File: main.py From sbb_textline_detection with Apache License 2.0 | 5 votes |
def rotate_image(self, img_patch, slope): (h, w) = img_patch.shape[:2] center = (w // 2, h // 2) M = cv2.getRotationMatrix2D(center, slope, 1.0) return cv2.warpAffine(img_patch, M, (w, h), flags=cv2.INTER_CUBIC, borderMode=cv2.BORDER_REPLICATE)
Example #21
Source File: features.py From pyCFTrackers with MIT License | 5 votes |
def _sample_patch(self, im, pos, sample_sz, output_sz): pos = np.floor(pos) sample_sz = np.maximum(mround(sample_sz), 1) xs = np.floor(pos[1]) + np.arange(0, sample_sz[1]+1) - np.floor((sample_sz[1]+1)/2) ys = np.floor(pos[0]) + np.arange(0, sample_sz[0]+1) - np.floor((sample_sz[0]+1)/2) xmin = max(0, int(xs.min())) xmax = min(im.shape[1], int(xs.max())) ymin = max(0, int(ys.min())) ymax = min(im.shape[0], int(ys.max())) # extract image im_patch = im[ymin:ymax, xmin:xmax, :] left = right = top = down = 0 if xs.min() < 0: left = int(abs(xs.min())) if xs.max() > im.shape[1]: right = int(xs.max() - im.shape[1]) if ys.min() < 0: top = int(abs(ys.min())) if ys.max() > im.shape[0]: down = int(ys.max() - im.shape[0]) if left != 0 or right != 0 or top != 0 or down != 0: im_patch = cv2.copyMakeBorder(im_patch, top, down, left, right, cv2.BORDER_REPLICATE) # im_patch = cv2.resize(im_patch, (int(output_sz[0]), int(output_sz[1]))) im_patch = cv2.resize(im_patch, (int(output_sz[1]), int(output_sz[0])), cv2.INTER_CUBIC) if len(im_patch.shape) == 2: im_patch = im_patch[:, :, np.newaxis] return im_patch
Example #22
Source File: DataObject.py From Machine-Learning-Study-Notes with Apache License 2.0 | 5 votes |
def random_transform(image, rotation_range, zoom_range, shift_range, random_flip): h, w = image.shape[0:2] rotation = np.random.uniform(-rotation_range, rotation_range) scale = np.random.uniform(1 - zoom_range, 1 + zoom_range) tx = np.random.uniform(-shift_range, shift_range) * w ty = np.random.uniform(-shift_range, shift_range) * h mat = cv2.getRotationMatrix2D((w // 2, h // 2), rotation, scale) mat[:, 2] += (tx, ty) result = cv2.warpAffine(image, mat, (w, h), borderMode=cv2.BORDER_REPLICATE) if np.random.random() < random_flip: result = result[:, ::-1] return result
Example #23
Source File: imgproc.py From Distributed-BA3C with Apache License 2.0 | 5 votes |
def _augment(self, img, s): return cv2.GaussianBlur(img, s, sigmaX=0, sigmaY=0, borderType=cv2.BORDER_REPLICATE)
Example #24
Source File: eval_illumination.py From DocProj with MIT License | 5 votes |
def padCropImg(img): H = img.shape[0] W = img.shape[1] patchRes = 128 pH = patchRes pW = patchRes ovlp = int(patchRes * 0.125) padH = (int((H - patchRes)/(patchRes - ovlp) + 1) * (patchRes - ovlp) + patchRes) - H padW = (int((W - patchRes)/(patchRes - ovlp) + 1) * (patchRes - ovlp) + patchRes) - W padImg = cv2.copyMakeBorder(img, 0, padH, 0, padW, cv2.BORDER_REPLICATE) ynum = int((padImg.shape[0] - pH)/(pH - ovlp)) + 1 xnum = int((padImg.shape[1] - pW)/(pW - ovlp)) + 1 totalPatch = np.zeros((ynum, xnum, patchRes, patchRes, 3), dtype=np.uint8) for j in range(0, ynum): for i in range(0, xnum): x = int(i * (pW - ovlp)) y = int(j * (pH - ovlp)) totalPatch[j, i] = padImg[y:int(y + patchRes), x:int(x + patchRes)] return totalPatch
Example #25
Source File: geometry.py From Distributed-BA3C with Apache License 2.0 | 5 votes |
def __init__(self, max_deg, center_range=(0,1), interp=cv2.INTER_CUBIC, border=cv2.BORDER_REPLICATE): """ :param max_deg: max abs value of the rotation degree :param center_range: the location of the rotation center """ super(Rotation, self).__init__() self._init(locals())
Example #26
Source File: pipline_test.py From Face-skin-hair-segmentaiton-and-skin-color-evaluation with Apache License 2.0 | 5 votes |
def pad_img_to_fit_bbox(img, x1, x2, y1, y2): img = cv.copyMakeBorder(img, - min(0, y1), max(y2 - img.shape[0], 0), -min(0, x1), max(x2 - img.shape[1], 0), cv.BORDER_REPLICATE) y2 += -min(0, y1) y1 += -min(0, y1) x2 += -min(0, x1) x1 += -min(0, x1) return img, x1, x2, y1, y2
Example #27
Source File: WordSegmentation.py From WordSegmentation with MIT License | 5 votes |
def wordSegmentation(img, kernelSize=25, sigma=11, theta=7, minArea=0): """Scale space technique for word segmentation proposed by R. Manmatha: http://ciir.cs.umass.edu/pubfiles/mm-27.pdf Args: img: grayscale uint8 image of the text-line to be segmented. kernelSize: size of filter kernel, must be an odd integer. sigma: standard deviation of Gaussian function used for filter kernel. theta: approximated width/height ratio of words, filter function is distorted by this factor. minArea: ignore word candidates smaller than specified area. Returns: List of tuples. Each tuple contains the bounding box and the image of the segmented word. """ # apply filter kernel kernel = createKernel(kernelSize, sigma, theta) imgFiltered = cv2.filter2D(img, -1, kernel, borderType=cv2.BORDER_REPLICATE).astype(np.uint8) (_, imgThres) = cv2.threshold(imgFiltered, 0, 255, cv2.THRESH_BINARY+cv2.THRESH_OTSU) imgThres = 255 - imgThres # find connected components. OpenCV: return type differs between OpenCV2 and 3 if cv2.__version__.startswith('3.'): (_, components, _) = cv2.findContours(imgThres, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) else: (components, _) = cv2.findContours(imgThres, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE) # append components to result res = [] for c in components: # skip small word candidates if cv2.contourArea(c) < minArea: continue # append bounding box and image of word to result list currBox = cv2.boundingRect(c) # returns (x, y, w, h) (x, y, w, h) = currBox currImg = img[y:y+h, x:x+w] res.append((currBox, currImg)) # return list of words, sorted by x-coordinate return sorted(res, key=lambda entry:entry[0][0])
Example #28
Source File: transforms.py From SSD-variants with MIT License | 5 votes |
def __init__(self, angle_range=(-30.0, 30.0), mode='linear', border='constant', fillval=0, anchor=None, random_state=np.random): if isinstance(angle_range, numbers.Number): angle_range = (-angle_range, angle_range) self.angle_range = angle_range if isinstance(fillval, numbers.Number): fillval = [fillval] * 3 self.mode = mode self.border = BorderTypes.get(border, cv2.BORDER_REPLICATE) self.fillval = fillval self.anchor = anchor self.random = random_state
Example #29
Source File: utils.py From ProxImaL with MIT License | 5 votes |
def estimate_std(z, method='daub_reflect'): # Estimates noise standard deviation assuming additive gaussian noise # Check method if (method not in NoiseEstMethod.values()) and (method in NoiseEstMethod.keys()): method = NoiseEstMethod[method] else: raise Exception("Invalid noise estimation method.") # Check shape if len(z.shape) == 2: z = z[..., np.newaxis] elif len(z.shape) != 3: raise Exception("Supports only up to 3D images.") # Run on multichannel image channels = z.shape[2] dev = np.zeros(channels) # Iterate over channels for ch in range(channels): # Daubechies denoising method if method == NoiseEstMethod['daub_reflect'] or method == NoiseEstMethod['daub_replicate']: daub6kern = np.array([0.03522629188571, 0.08544127388203, -0.13501102001025, -0.45987750211849, 0.80689150931109, -0.33267055295008], dtype=np.float32, order='F') if method == NoiseEstMethod['daub_reflect']: wav_det = cv2.sepFilter2D(z, -1, daub6kern, daub6kern, borderType=cv2.BORDER_REFLECT_101) else: wav_det = cv2.sepFilter2D(z, -1, daub6kern, daub6kern, borderType=cv2.BORDER_REPLICATE) dev[ch] = np.median(np.absolute(wav_det)) / 0.6745 # Return standard deviation return dev
Example #30
Source File: augmentation.py From pytracking with GNU General Public License v3.0 | 5 votes |
def __call__(self, image, is_mask=False): if isinstance(image, torch.Tensor): return self.crop_to_output(numpy_to_torch(self(torch_to_numpy(image)))) else: c = (np.expand_dims(np.array(image.shape[:2]),1)-1)/2 R = np.array([[math.cos(self.angle), math.sin(self.angle)], [-math.sin(self.angle), math.cos(self.angle)]]) H =np.concatenate([R, c - R @ c], 1) return cv.warpAffine(image, H, image.shape[1::-1], borderMode=cv.BORDER_REPLICATE)