Python cv2.BORDER_CONSTANT Examples
The following are 30
code examples of cv2.BORDER_CONSTANT().
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: cv_detection_right_hand.py From AI-Robot-Challenge-Lab with MIT License | 6 votes |
def __apply_template_matching(angle, template, image): # Rotate the template template_rotated = __rotate_image_size_corrected(template, angle) # Apply template matching image_templated = cv2.matchTemplate(image, template_rotated, cv2.TM_CCOEFF_NORMED) # Correct template matching image size difference template_rotated_height, template_rotated_width = template_rotated.shape template_half_height = template_rotated_height // 2 template_half_width = template_rotated_width // 2 image_templated_inrange_size_corrected = cv2.copyMakeBorder(image_templated, template_half_height, template_half_height, template_half_width, template_half_width, cv2.BORDER_CONSTANT, value=0) # Calculate maximum match coefficient max_match = numpy.max(image_templated_inrange_size_corrected) return (max_match, angle, template_rotated, image_templated_inrange_size_corrected)
Example #2
Source File: tiles.py From argus-freesound with MIT License | 6 votes |
def split(self, image, border_type=cv2.BORDER_CONSTANT, value=0): assert image.shape[0] == self.image_height assert image.shape[1] == self.image_width orig_shape_len = len(image.shape) image = cv2.copyMakeBorder(image, self.margin_top, self.margin_bottom, self.margin_left, self.margin_right, borderType=border_type, value=value) # This check recovers possible lack of last dummy dimension for single-channel images if len(image.shape) != orig_shape_len: image = np.expand_dims(image, axis=-1) tiles = [] for x, y, tile_width, tile_height in self.crops: tile = image[y:y + tile_height, x:x + tile_width].copy() assert tile.shape[0] == self.tile_size[0] assert tile.shape[1] == self.tile_size[1] tiles.append(tile) return tiles
Example #3
Source File: augmentation.py From face_landmark with Apache License 2.0 | 6 votes |
def Affine_aug(src,strength,label=None): image = src pts_base = np.float32([[10,100],[200,50],[100,250]]) pts1 = np.random.rand(3, 2) * random.uniform(-strength, strength) + pts_base pts1 = pts1.astype(np.float32) M = cv2.getAffineTransform(pts1, pts_base) trans_img = cv2.warpAffine(image, M, (image.shape[1], image.shape[0]) , borderMode=cv2.BORDER_CONSTANT, borderValue=cfg.DATA.PIXEL_MEAN) label_rotated=None if label is not None: label=label.T full_label = np.row_stack((label, np.ones(shape=(1, label.shape[1])))) label_rotated = np.dot(M, full_label) #label_rotated = label_rotated.astype(np.int32) label_rotated=label_rotated.T return trans_img,label_rotated
Example #4
Source File: tiles.py From argus-freesound with MIT License | 6 votes |
def cut_patch(self, image: np.ndarray, slice_index, border_type=cv2.BORDER_CONSTANT, value=0): assert image.shape[0] == self.image_height assert image.shape[1] == self.image_width orig_shape_len = len(image.shape) image = cv2.copyMakeBorder(image, self.margin_top, self.margin_bottom, self.margin_left, self.margin_right, borderType=border_type, value=value) # This check recovers possible lack of last dummy dimension for single-channel images if len(image.shape) != orig_shape_len: image = np.expand_dims(image, axis=-1) x, y, tile_width, tile_height = self.crops[slice_index] tile = image[y:y + tile_height, x:x + tile_width].copy() assert tile.shape[0] == self.tile_size[0] assert tile.shape[1] == self.tile_size[1] return tile
Example #5
Source File: opencv.py From dynamic-training-with-apache-mxnet-on-aws with Apache License 2.0 | 6 votes |
def copyMakeBorder(src, top, bot, left, right, border_type=cv2.BORDER_CONSTANT, value=0): """Pad image border Wrapper for cv2.copyMakeBorder that uses mx.nd.NDArray Parameters ---------- src : NDArray Image in (width, height, channels). Others are the same with cv2.copyMakeBorder Returns ------- img : NDArray padded image """ hdl = NDArrayHandle() check_call(_LIB.MXCVcopyMakeBorder(src.handle, ctypes.c_int(top), ctypes.c_int(bot), ctypes.c_int(left), ctypes.c_int(right), ctypes.c_int(border_type), ctypes.c_double(value), ctypes.byref(hdl))) return mx.nd.NDArray(hdl)
Example #6
Source File: datasets.py From pytorch-segmentation-toolbox with MIT License | 6 votes |
def __getitem__(self, index): datafiles = self.files[index] image = cv2.imread(datafiles["img"], cv2.IMREAD_COLOR) label = cv2.imread(datafiles["label"], cv2.IMREAD_GRAYSCALE) label = self.id2trainId(label) size = image.shape name = datafiles["name"] if self.scale: image, label = self.generate_scale_label(image, label) image = np.asarray(image, np.float32) image -= self.mean img_h, img_w = label.shape pad_h = max(self.crop_h - img_h, 0) pad_w = max(self.crop_w - img_w, 0) if pad_h > 0 or pad_w > 0: img_pad = cv2.copyMakeBorder(image, 0, pad_h, 0, pad_w, cv2.BORDER_CONSTANT, value=(0.0, 0.0, 0.0)) label_pad = cv2.copyMakeBorder(label, 0, pad_h, 0, pad_w, cv2.BORDER_CONSTANT, value=(self.ignore_label,)) else: img_pad, label_pad = image, label img_h, img_w = label_pad.shape h_off = random.randint(0, img_h - self.crop_h) w_off = random.randint(0, img_w - self.crop_w) # roi = cv2.Rect(w_off, h_off, self.crop_w, self.crop_h); image = np.asarray(img_pad[h_off : h_off+self.crop_h, w_off : w_off+self.crop_w], np.float32) label = np.asarray(label_pad[h_off : h_off+self.crop_h, w_off : w_off+self.crop_w], np.float32) #image = image[:, :, ::-1] # change to BGR image = image.transpose((2, 0, 1)) if self.is_mirror: flip = np.random.choice(2) * 2 - 1 image = image[:, :, ::flip] label = label[:, ::flip] return image.copy(), label.copy(), np.array(size), name
Example #7
Source File: coco_hpe2_dataset.py From imgclsmob with MIT License | 6 votes |
def pad_width(img, stride, pad_value, min_dims): h, w, _ = img.shape h = min(min_dims[0], h) min_dims[0] = math.ceil(min_dims[0] / float(stride)) * stride min_dims[1] = max(min_dims[1], w) min_dims[1] = math.ceil(min_dims[1] / float(stride)) * stride top = int(math.floor((min_dims[0] - h) / 2.0)) left = int(math.floor((min_dims[1] - w) / 2.0)) bottom = int(min_dims[0] - h - top) right = int(min_dims[1] - w - left) pad = [top, left, bottom, right] padded_img = cv2.copyMakeBorder( src=img, top=top, bottom=bottom, left=left, right=right, borderType=cv2.BORDER_CONSTANT, value=pad_value) return padded_img, pad # ---------------------------------------------------------------------------------------------------------------------
Example #8
Source File: coco_hpe2_dataset.py From imgclsmob with MIT License | 6 votes |
def pad_width(img, stride, pad_value, min_dims): h, w, _ = img.shape h = min(min_dims[0], h) min_dims[0] = math.ceil(min_dims[0] / float(stride)) * stride min_dims[1] = max(min_dims[1], w) min_dims[1] = math.ceil(min_dims[1] / float(stride)) * stride top = int(math.floor((min_dims[0] - h) / 2.0)) left = int(math.floor((min_dims[1] - w) / 2.0)) bottom = int(min_dims[0] - h - top) right = int(min_dims[1] - w - left) pad = [top, left, bottom, right] padded_img = cv2.copyMakeBorder( src=img, top=top, bottom=bottom, left=left, right=right, borderType=cv2.BORDER_CONSTANT, value=pad_value) return padded_img, pad # ---------------------------------------------------------------------------------------------------------------------
Example #9
Source File: datasets.py From pytorch-segmentation-toolbox with MIT License | 6 votes |
def __getitem__(self, index): datafiles = self.files[index] image = cv2.imread(datafiles["img"], cv2.IMREAD_COLOR) label = cv2.imread(datafiles["label"], cv2.IMREAD_GRAYSCALE) size = image.shape name = datafiles["name"] if self.scale: image, label = self.generate_scale_label(image, label) image = np.asarray(image, np.float32) image -= self.mean img_h, img_w = label.shape pad_h = max(self.crop_h - img_h, 0) pad_w = max(self.crop_w - img_w, 0) if pad_h > 0 or pad_w > 0: img_pad = cv2.copyMakeBorder(image, 0, pad_h, 0, pad_w, cv2.BORDER_CONSTANT, value=(0.0, 0.0, 0.0)) label_pad = cv2.copyMakeBorder(label, 0, pad_h, 0, pad_w, cv2.BORDER_CONSTANT, value=(self.ignore_label,)) else: img_pad, label_pad = image, label img_h, img_w = label_pad.shape h_off = random.randint(0, img_h - self.crop_h) w_off = random.randint(0, img_w - self.crop_w) # roi = cv2.Rect(w_off, h_off, self.crop_w, self.crop_h); image = np.asarray(img_pad[h_off : h_off+self.crop_h, w_off : w_off+self.crop_w], np.float32) label = np.asarray(label_pad[h_off : h_off+self.crop_h, w_off : w_off+self.crop_w], np.float32) #image = image[:, :, ::-1] # change to BGR image = image.transpose((2, 0, 1)) if self.is_mirror: flip = np.random.choice(2) * 2 - 1 image = image[:, :, ::flip] label = label[:, ::flip] return image.copy(), label.copy(), np.array(size), name
Example #10
Source File: datasets.py From pytorch-segmentation-toolbox with MIT License | 6 votes |
def __getitem__(self, index): datafiles = self.files[index] image = cv2.imread(datafiles["img"], cv2.IMREAD_COLOR) size = image.shape name = osp.splitext(osp.basename(datafiles["img"]))[0] image = np.asarray(image, np.float32) image -= self.mean img_h, img_w, _ = image.shape pad_h = max(self.crop_h - img_h, 0) pad_w = max(self.crop_w - img_w, 0) if pad_h > 0 or pad_w > 0: image = cv2.copyMakeBorder(image, 0, pad_h, 0, pad_w, cv2.BORDER_CONSTANT, value=(0.0, 0.0, 0.0)) image = image.transpose((2, 0, 1)) return image, name, size
Example #11
Source File: datasets.py From pytorch-segmentation-toolbox with MIT License | 6 votes |
def __getitem__(self, index): datafiles = self.files[index] image = cv2.imread(datafiles["img"], cv2.IMREAD_COLOR) size = image.shape name = osp.splitext(osp.basename(datafiles["img"]))[0] image = np.asarray(image, np.float32) image -= self.mean img_h, img_w, _ = image.shape pad_h = max(self.crop_h - img_h, 0) pad_w = max(self.crop_w - img_w, 0) if pad_h > 0 or pad_w > 0: image = cv2.copyMakeBorder(image, 0, pad_h, 0, pad_w, cv2.BORDER_CONSTANT, value=(0.0, 0.0, 0.0)) image = image.transpose((2, 0, 1)) return image, name, size
Example #12
Source File: datasets.py From pytorch-segmentation-toolbox with MIT License | 6 votes |
def __getitem__(self, index): datafiles = self.files[index] image = cv2.imread(datafiles["img"], cv2.IMREAD_COLOR) image = cv2.resize(image, None, fx=0.5, fy=0.5, interpolation=cv2.INTER_LINEAR) size = image.shape name = osp.splitext(osp.basename(datafiles["img"]))[0] image = np.asarray(image, np.float32) image = (image - image.min()) / (image.max() - image.min()) img_h, img_w, _ = image.shape pad_h = max(self.crop_h - img_h, 0) pad_w = max(self.crop_w - img_w, 0) if pad_h > 0 or pad_w > 0: image = cv2.copyMakeBorder(image, 0, pad_h, 0, pad_w, cv2.BORDER_CONSTANT, value=(0.0, 0.0, 0.0)) image = image.transpose((2, 0, 1)) return image, np.array(size), name
Example #13
Source File: coco_hpe2_dataset.py From imgclsmob with MIT License | 6 votes |
def pad_width(img, stride, pad_value, min_dims): h, w, _ = img.shape h = min(min_dims[0], h) min_dims[0] = math.ceil(min_dims[0] / float(stride)) * stride min_dims[1] = max(min_dims[1], w) min_dims[1] = math.ceil(min_dims[1] / float(stride)) * stride top = int(math.floor((min_dims[0] - h) / 2.0)) left = int(math.floor((min_dims[1] - w) / 2.0)) bottom = int(min_dims[0] - h - top) right = int(min_dims[1] - w - left) pad = [top, left, bottom, right] padded_img = cv2.copyMakeBorder( src=img, top=top, bottom=bottom, left=left, right=right, borderType=cv2.BORDER_CONSTANT, value=pad_value) return padded_img, pad # ---------------------------------------------------------------------------------------------------------------------
Example #14
Source File: helpers.py From simple_convnet with MIT License | 6 votes |
def filter2D(input_arr, filter): """ 2D filtering (i.e. convolution but without mirroring the filter). Mostly a convenience wrapper around OpenCV. Parameters ---------- input_arr : numpy array, HxW size filter : numpy array, H1xW1 size Returns ------- result : numpy array, HxW size """ return cv2.filter2D(input_arr, -1, filter, borderType=cv2.BORDER_CONSTANT)
Example #15
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 #16
Source File: ScreenGrab.py From BiblioPixelAnimations with MIT License | 6 votes |
def step(self, amt=1): image = self._capFrame() if self.crop: image = image[self._cropY + self.yoff:self._ih - self._cropY + self.yoff, self._cropX + self.xoff:self._iw - self._cropX + self.xoff] else: t, b, l, r = self._pad image = cv2.copyMakeBorder( image, t, b, l, r, cv2.BORDER_CONSTANT, value=[0, 0, 0]) resized = cv2.resize(image, (self.width, self.height), interpolation=cv2.INTER_LINEAR) if self.mirror: resized = cv2.flip(resized, 1) for y in range(self.height): for x in range(self.width): self.layout.set(x, y, tuple(resized[y, x][0:3]))
Example #17
Source File: utils.py From torchbench with Apache License 2.0 | 6 votes |
def __init__( self, min_height=769, min_width=769, border_mode=cv2.BORDER_CONSTANT, value=0, ignore_index=255, always_apply=False, p=1.0, ): super().__init__(always_apply, p) self.min_height = min_height self.min_width = min_width self.border_mode = border_mode self.value = value self.ignore_index = ignore_index
Example #18
Source File: sal_data_layer.py From DSS with MIT License | 6 votes |
def load_label(self, idx): """ Load label image as 1 x height x width integer array of label indices. The leading singleton dimension is required by the loss. """ im = Image.open(self.data_root + self.label_lst[idx]) label = np.array(im) / 255#cv2.imread(self.data_root + self.label_lst[idx], 0) / 255 #if self.scales != None: # label = cv2.resize(label, None, None, fx=self.scales[self.scale_ind], fy=self.scales[self.scale_ind], \ # interpolation=cv2.INTER_NEAREST) #height, width = label.shape[:2] #h_off = self.crop_size - height #w_off = self.crop_size - width #label = cv2.copyMakeBorder(label, 0, max(0, h_off), 0, max(0, w_off), cv2.BORDER_CONSTANT, value=[-1,]) #label = label[self.h_off:self.h_off+self.height, self.w_off:self.w_off+self.width] label = label[np.newaxis, ...] if self.flip == 1: label = label[:,:,::-1] return label
Example #19
Source File: sal_data_layer.py From DSS with MIT License | 6 votes |
def load_region(self, idx): """ Load label image as 1 x height x width integer array of label indices. The leading singleton dimension is required by the loss. """ im = Image.open(self.data_root + self.region_lst[idx]) region = np.array(im, dtype=np.float32) / 15.0 #print np.unique(region) #if self.scales != None: # label = cv2.resize(label, None, None, fx=self.scales[self.scale_ind], fy=self.scales[self.scale_ind], \ # interpolation=cv2.INTER_NEAREST) #height, width = label.shape[:2] #h_off = self.crop_size - height #w_off = self.crop_size - width #label = cv2.copyMakeBorder(label, 0, max(0, h_off), 0, max(0, w_off), cv2.BORDER_CONSTANT, value=[-1,]) region = region[np.newaxis, ...] if self.flip == 1: region = region[:,:,::-1] return region
Example #20
Source File: write_tfrecord.py From 2019-CCF-BDCI-OCR-MCZJ-OCR-IdentificationIDElement with MIT License | 6 votes |
def _resize_image(img): dst_width = CFG.ARCH.INPUT_SIZE[0] dst_height = CFG.ARCH.INPUT_SIZE[1] h_old, w_old, _ = img.shape height = dst_height width = int(w_old * height / h_old) if width < dst_width: left_padding = int((dst_width - width)/2) right_padding = dst_width - width - left_padding resized_img = cv2.resize(img, (width, height), interpolation=cv2.INTER_CUBIC) resized_img = cv2.copyMakeBorder(resized_img, 0, 0, left_padding, right_padding, cv2.BORDER_CONSTANT, value=[255, 255, 255]) else: resized_img = cv2.resize(img, (dst_width, height), interpolation=cv2.INTER_CUBIC) return resized_img
Example #21
Source File: utils.py From generative_adversary with GNU General Public License v3.0 | 6 votes |
def label_images(images, labels): font = cv.FONT_HERSHEY_SIMPLEX new_imgs = [] for i, img in enumerate(images): new_img = ((img.copy() + 1.) * 127.5).astype(np.uint8) if new_img.shape[-1] == 3: new_img = new_img[..., ::-1] new_img = cv.resize(new_img, (100, 100), interpolation=cv.INTER_LINEAR) new_img = cv.putText(new_img, str(labels[i]), (10, 30), font, 1, (255, 255, 255), 2, cv.LINE_AA) new_img = cv.copyMakeBorder(new_img, top=2, bottom=2, left=2, right=2, borderType=cv.BORDER_CONSTANT, value=(255, 255, 255)) else: new_img = np.squeeze(new_img) new_img = cv.resize(new_img, (100, 100), interpolation=cv.INTER_LINEAR) new_img = cv.putText(new_img, str(labels[i]), (10, 30), font, 1, (255), 2, cv.LINE_AA) new_img = new_img[..., None] new_img = (new_img / 127.5 - 1.0).astype(np.float32) new_imgs.append(new_img[..., ::-1]) return np.stack(new_imgs, axis=0)
Example #22
Source File: datasets.py From CCNet with MIT License | 6 votes |
def __getitem__(self, index): datafiles = self.files[index] image = cv2.imread(datafiles["img"], cv2.IMREAD_COLOR) size = image.shape name = osp.splitext(osp.basename(datafiles["img"]))[0] image = np.asarray(image, np.float32) image -= self.mean img_h, img_w, _ = image.shape pad_h = max(self.crop_h - img_h, 0) pad_w = max(self.crop_w - img_w, 0) if pad_h > 0 or pad_w > 0: image = cv2.copyMakeBorder(image, 0, pad_h, 0, pad_w, cv2.BORDER_CONSTANT, value=(0.0, 0.0, 0.0)) image = image.transpose((2, 0, 1)) return image, name, size
Example #23
Source File: datasets.py From CCNet with MIT License | 6 votes |
def __getitem__(self, index): datafiles = self.files[index] image = cv2.imread(datafiles["img"], cv2.IMREAD_COLOR) size = image.shape name = osp.splitext(osp.basename(datafiles["img"]))[0] image = np.asarray(image, np.float32) image -= self.mean img_h, img_w, _ = image.shape pad_h = max(self.crop_h - img_h, 0) pad_w = max(self.crop_w - img_w, 0) if pad_h > 0 or pad_w > 0: image = cv2.copyMakeBorder(image, 0, pad_h, 0, pad_w, cv2.BORDER_CONSTANT, value=(0.0, 0.0, 0.0)) image = image.transpose((2, 0, 1)) return image, np.array(size), name
Example #24
Source File: image_utils.py From Fast_Seg with Apache License 2.0 | 6 votes |
def random_crop_pad_to_shape(img, crop_pos, crop_size, pad_label_value): h, w = img.shape[:2] start_crop_h, start_crop_w = crop_pos assert ((start_crop_h < h) and (start_crop_h >= 0)) assert ((start_crop_w < w) and (start_crop_w >= 0)) crop_size = get_2dshape(crop_size) crop_h, crop_w = crop_size img_crop = img[start_crop_h:start_crop_h + crop_h, start_crop_w:start_crop_w + crop_w, ...] img_, margin = pad_image_to_shape(img_crop, crop_size, cv2.BORDER_CONSTANT, pad_label_value) return img_, margin
Example #25
Source File: coco_hpe2_dataset.py From imgclsmob with MIT License | 6 votes |
def pad_width(img, stride, pad_value, min_dims): h, w, _ = img.shape h = min(min_dims[0], h) min_dims[0] = math.ceil(min_dims[0] / float(stride)) * stride min_dims[1] = max(min_dims[1], w) min_dims[1] = math.ceil(min_dims[1] / float(stride)) * stride top = int(math.floor((min_dims[0] - h) / 2.0)) left = int(math.floor((min_dims[1] - w) / 2.0)) bottom = int(min_dims[0] - h - top) right = int(min_dims[1] - w - left) pad = [top, left, bottom, right] padded_img = cv2.copyMakeBorder( src=img, top=top, bottom=bottom, left=left, right=right, borderType=cv2.BORDER_CONSTANT, value=pad_value) return padded_img, pad # ---------------------------------------------------------------------------------------------------------------------
Example #26
Source File: augmentation.py From face_landmark with Apache License 2.0 | 5 votes |
def Rotate_aug(src,angle,label=None,center=None,scale=1.0): ''' :param src: src image :param label: label should be numpy array with [[x1,y1], [x2,y2], [x3,y3]...] :param angle: :param center: :param scale: :return: the rotated image and the points ''' image=src (h, w) = image.shape[:2] # 若未指定旋转中心,则将图像中心设为旋转中心 if center is None: center = (w / 2, h / 2) # 执行旋转 M = cv2.getRotationMatrix2D(center, angle, scale) if label is None: for i in range(image.shape[2]): image[:,:,i] = cv2.warpAffine(image[:,:,i], M, (w, h), flags=cv2.INTER_CUBIC, borderMode=cv2.BORDER_CONSTANT, borderValue=cfg.DATA.PIXEL_MEAN) return image,None else: label=label.T ####make it as a 3x3 RT matrix full_M=np.row_stack((M,np.asarray([0,0,1]))) img_rotated = cv2.warpAffine(image, M, (w, h), flags=cv2.INTER_CUBIC, borderMode=cv2.BORDER_CONSTANT, borderValue=cfg.DATA.PIXEL_MEAN) ###make the label as 3xN matrix full_label = np.row_stack((label, np.ones(shape=(1,label.shape[1])))) label_rotated=np.dot(full_M,full_label) label_rotated=label_rotated[0:2,:] #label_rotated = label_rotated.astype(np.int32) label_rotated=label_rotated.T return img_rotated,label_rotated
Example #27
Source File: utilities_CVbasic_v2.py From MachineLearningSamples-ImageClassificationUsingCntk with MIT License | 5 votes |
def imresizeAndPad(img, width, height, pad_value = 0): # resize image imgWidth, imgHeight = imWidthHeight(img) scale = min(float(width) / float(imgWidth), float(height) / float(imgHeight)) imgResized = imresize(img, scale) #, interpolation=cv2.INTER_NEAREST) resizedWidth, resizedHeight = imWidthHeight(imgResized) # pad image top = int(max(0, np.round((height - resizedHeight) / 2))) left = int(max(0, np.round((width - resizedWidth) / 2))) bottom = height - top - resizedHeight right = width - left - resizedWidth return cv2.copyMakeBorder(imgResized, top, bottom, left, right, cv2.BORDER_CONSTANT, value=[pad_value, pad_value, pad_value])
Example #28
Source File: augmentation.py From face_landmark with Apache License 2.0 | 5 votes |
def Random_crop(src,shrink): h,w,_=src.shape h_shrink=int(h*shrink) w_shrink = int(w * shrink) bimg = cv2.copyMakeBorder(src, h_shrink, h_shrink, w_shrink, w_shrink, borderType=cv2.BORDER_CONSTANT, value=(0,0,0)) start_h=random.randint(0,2*h_shrink) start_w=random.randint(0,2*w_shrink) target_img=bimg[start_h:start_h+h,start_w:start_w+w,:] return target_img
Example #29
Source File: evaluate.py From cntk-python-web-service-on-azure with MIT License | 5 votes |
def load_resize_and_pad(image_path, width, height, pad_value=114): if "@" in image_path: print("WARNING: zipped image archives are not supported for visualizing results.") exit(0) img = cv2.imread(image_path) img_width = len(img[0]) img_height = len(img) scale_w = img_width > img_height target_w = width target_h = height if scale_w: target_h = int(np.round(img_height * float(width) / float(img_width))) else: target_w = int(np.round(img_width * float(height) / float(img_height))) resized = cv2.resize(img, (target_w, target_h), 0, 0, interpolation=cv2.INTER_NEAREST) top = int(max(0, np.round((height - target_h) / 2))) left = int(max(0, np.round((width - target_w) / 2))) bottom = height - top - target_h right = width - left - target_w resized_with_pad = cv2.copyMakeBorder(resized, top, bottom, left, right, cv2.BORDER_CONSTANT, value=[pad_value, pad_value, pad_value]) # transpose(2,0,1) converts the image to the HWC format which CNTK accepts model_arg_rep = np.ascontiguousarray(np.array(resized_with_pad, dtype=np.float32).transpose(2, 0, 1)) dims = (width, height, target_w, target_h, img_width, img_height) return resized_with_pad, model_arg_rep, dims # mode="returnimage" or "returntags"
Example #30
Source File: core_images.py From ibeis with Apache License 2.0 | 5 votes |
def get_localization_chips_worker(gid, img, bbox_list, theta_list, target_size): target_size_list = [target_size] * len(bbox_list) # Build transformation from image to chip M_list = [ vt.get_image_to_chip_transform(bbox, new_size, theta) for bbox, theta, new_size in zip(bbox_list, theta_list, target_size_list) ] # Extract "chips" flags = cv2.INTER_LANCZOS4 borderMode = cv2.BORDER_CONSTANT warpkw = dict(flags=flags, borderMode=borderMode) def _compute_localiation_chip(tup): new_size, M = tup chip = cv2.warpAffine(img, M[0:2], tuple(new_size), **warpkw) # cv2.imshow('', chip) # cv2.waitKey() msg = 'Chip shape %r does not agree with target size %r' % (chip.shape, target_size, ) assert chip.shape[0] == new_size[0] and chip.shape[1] == new_size[1], msg return chip arg_list = list(zip(target_size_list, M_list)) chip_list = [_compute_localiation_chip(tup_) for tup_ in arg_list] gid_list = [gid] * len(chip_list) return gid_list, chip_list