Python cv2.WARP_FILL_OUTLIERS Examples
The following are 12
code examples of cv2.WARP_FILL_OUTLIERS().
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: data_generator.py From pOSAL with MIT License | 6 votes |
def polar_transform(img, mask, img_size, mode='train'): random_rotate_seed = 3 * 90 width_shift = 0 heigth_shift = 0 if mode == 'train': random_rotate_seed = random.randint(0,3) * 90 width_shift = random.randint(0,40) - 20 heigth_shift = random.randint(0,40) - 20 img = rotate(cv2.linearPolar(img, (img_size / 2 + width_shift, img_size / 2 + heigth_shift), img_size / 2 - 20, cv2.WARP_FILL_OUTLIERS), random_rotate_seed) mask = rotate(cv2.linearPolar(mask, (img_size / 2 + width_shift, img_size / 2 + heigth_shift), img_size / 2 - 20, cv2.WARP_FILL_OUTLIERS), random_rotate_seed) return img, mask
Example #2
Source File: scale_estimator.py From pyCFTrackers with MIT License | 6 votes |
def init(self,im,pos,base_target_sz,current_scale_factor): w,h=base_target_sz avg_dim = (w + h) / 2.5 self.scale_sz = ((w + avg_dim) / current_scale_factor, (h + avg_dim) / current_scale_factor) self.scale_sz0 = self.scale_sz self.cos_window_scale = cos_window((self.scale_sz_window[0], self.scale_sz_window[1])) self.mag = self.cos_window_scale.shape[0] / np.log(np.sqrt((self.cos_window_scale.shape[0] ** 2 + self.cos_window_scale.shape[1] ** 2) / 4)) # scale lp patchL = cv2.getRectSubPix(im, (int(np.floor(current_scale_factor * self.scale_sz[0])), int(np.floor(current_scale_factor * self.scale_sz[1]))), pos) patchL = cv2.resize(patchL, self.scale_sz_window) patchLp = cv2.logPolar(patchL.astype(np.float32), ((patchL.shape[1] - 1) / 2, (patchL.shape[0] - 1) / 2), self.mag, flags=cv2.INTER_LINEAR + cv2.WARP_FILL_OUTLIERS) self.model_patchLp = extract_hog_feature(patchLp, cell_size=4)
Example #3
Source File: utils.py From video-object-removal with MIT License | 6 votes |
def rotate_image(img, degree, interp=cv2.INTER_LINEAR): height, width = img.shape[:2] image_center = (width/2, height/2) rotation_mat = cv2.getRotationMatrix2D(image_center, degree, 1.) abs_cos = abs(rotation_mat[0,0]) abs_sin = abs(rotation_mat[0,1]) bound_w = int(height * abs_sin + width * abs_cos) bound_h = int(height * abs_cos + width * abs_sin) rotation_mat[0, 2] += bound_w/2 - image_center[0] rotation_mat[1, 2] += bound_h/2 - image_center[1] img_out = cv2.warpAffine(img, rotation_mat, (bound_w, bound_h), flags=interp+cv2.WARP_FILL_OUTLIERS) return img_out
Example #4
Source File: utils.py From video-object-removal with MIT License | 6 votes |
def rotate_image(img, degree, interp=cv2.INTER_LINEAR): height, width = img.shape[:2] image_center = (width/2, height/2) rotation_mat = cv2.getRotationMatrix2D(image_center, degree, 1.) abs_cos = abs(rotation_mat[0,0]) abs_sin = abs(rotation_mat[0,1]) bound_w = int(height * abs_sin + width * abs_cos) bound_h = int(height * abs_cos + width * abs_sin) rotation_mat[0, 2] += bound_w/2 - image_center[0] rotation_mat[1, 2] += bound_h/2 - image_center[1] img_out = cv2.warpAffine(img, rotation_mat, (bound_w, bound_h), flags=interp+cv2.WARP_FILL_OUTLIERS) return img_out
Example #5
Source File: calibration_utils.py From depthai with MIT License | 5 votes |
def rectify_dataset(self, dataset_dir, calibration_file): images_left = glob.glob(dataset_dir + '/left/*.png') print(images_left) images_right = glob.glob(dataset_dir + '/right/*.png') left_result_dir = os.path.join(dataset_dir + "Rectified", "left") right_result_dir = os.path.join(dataset_dir + "Rectified", "right") images_left.sort() images_right.sort() assert len(images_left) != 0, "ERROR: Images not read correctly" assert len(images_right) != 0, "ERROR: Images not read correctly" mkdir_overwrite(left_result_dir) mkdir_overwrite(right_result_dir) H = np.fromfile(calibration_file, dtype=np.float32).reshape((3, 3)) print("Using Homography from file, with values: ") print(H) H = np.linalg.inv(H) for image_left, image_right in zip(images_left, images_right): # read images img_l = cv2.imread(image_left, 0) img_r = cv2.imread(image_right, 0) # warp right image img_r = cv2.warpPerspective(img_r, H, img_r.shape[::-1], cv2.INTER_LINEAR + cv2.WARP_FILL_OUTLIERS + cv2.WARP_INVERSE_MAP) # save images cv2.imwrite(os.path.join(left_result_dir, os.path.basename(image_left)), img_l) cv2.imwrite(os.path.join(right_result_dir, os.path.basename(image_right)), img_r)
Example #6
Source File: utils_features.py From pyslam with GNU General Public License v3.0 | 5 votes |
def extract_patches_tensor(img, kps, patch_size=32, mag_factor=1.0, warp_flags=cv2.WARP_INVERSE_MAP + cv2.INTER_CUBIC + cv2.WARP_FILL_OUTLIERS): patches = np.ndarray((len(kps), 1, patch_size, patch_size), dtype=np.float32) half_patch_size=0.5*patch_size for i,kp in enumerate(kps): x,y = kp.pt s = kp.size a = kp.angle scale = mag_factor * s/patch_size a_rad = a * math.pi/180.0 cos = math.cos(a_rad) if a_rad >=0 else 1.0 sin = math.sin(a_rad) if a_rad >=0 else 0.0 scale_cos = scale*cos scale_sin = scale*sin M = np.matrix([ [+scale_cos, -scale_sin, (-scale_cos + scale_sin) * half_patch_size + x], [+scale_sin, +scale_cos, (-scale_sin - scale_cos) * half_patch_size + y]]) patch = cv2.warpAffine(img, M, (patch_size, patch_size), flags=warp_flags) patches[i,0,:,:] = cv2.resize(patch,(patch_size,patch_size)) return patches # extract/rectify patches around openCV keypoints, and returns patches array # out: `patches` as an array of len(kps) element of size (patch_size, patch_size) # N.B.: you can obtain a numpy array of size (len(kps), patch_size, patch_size) by wrapping: # patches = np.asarray(patches)
Example #7
Source File: utils_features.py From pyslam with GNU General Public License v3.0 | 5 votes |
def extract_patches_array(img, kps, patch_size=32, mag_factor=1.0, warp_flags=cv2.WARP_INVERSE_MAP + cv2.INTER_CUBIC + cv2.WARP_FILL_OUTLIERS): patches = [] half_patch_size=0.5*patch_size for kp in kps: x,y = kp.pt s = kp.size a = kp.angle scale = mag_factor * s/patch_size a_rad = a * math.pi/180.0 cos = math.cos(a_rad) if a_rad >=0 else 1.0 sin = math.sin(a_rad) if a_rad >=0 else 0.0 scale_cos = scale*cos scale_sin = scale*sin M = np.matrix([ [+scale_cos, -scale_sin, (-scale_cos + scale_sin) * half_patch_size + x], [+scale_sin, +scale_cos, (-scale_sin - scale_cos) * half_patch_size + y]]) patch = cv2.warpAffine(img, M, (patch_size, patch_size), flags=warp_flags) patches.append(patch) return patches # extract/rectify patches around openCV keypoints, and returns patches array # out: `patches` as an array of len(kps) element of size (patch_size, patch_size) # N.B.: you can obtain a numpy array of size (len(kps), patch_size, patch_size) by wrapping: # patches = np.asarray(patches)
Example #8
Source File: utils_features.py From pyslam with GNU General Public License v3.0 | 5 votes |
def extract_patches_array_cpp(img, kps, patch_size=32, mag_factor=1.0, warp_flags=cv2.WARP_INVERSE_MAP + cv2.INTER_CUBIC + cv2.WARP_FILL_OUTLIERS): if kPySlamUtilsAvailable: kps_tuples = [ (kp.pt[0], kp.pt[1], kp.size, kp.angle, kp.response, kp.octave) for kp in kps] return pyslam_utils.extract_patches(image=img, kps=kps_tuples, patch_size=patch_size, use_orientation=True, scale_factor=mag_factor, warp_flags=warp_flags) else: print('using python version extract_patches_array()') return extract_patches_array(img=img, kps=kps, patch_size=patch_size, mag_factor=mag_factor, warp_flags=warp_flags)
Example #9
Source File: extract_yd.py From deda with GNU General Public License v3.0 | 5 votes |
def rotateImage(image, angle, interpolation=cv2.INTER_LINEAR): """ source: https://stackoverflow.com/questions/9041681/opencv-python-rotate-image-by-x-degrees-around-specific-point """ row,col = image.shape[:2] center=tuple(np.array([row,col])/2) rot_mat = cv2.getRotationMatrix2D(center,angle,1.0) new_image = cv2.warpAffine(image, rot_mat, (col,row), flags=interpolation+cv2.WARP_FILL_OUTLIERS) return new_image
Example #10
Source File: scale_estimator.py From pyCFTrackers with MIT License | 5 votes |
def update(self,im,pos,base_target_sz,current_scale_factor): patchL = cv2.getRectSubPix(im, (int(np.floor(current_scale_factor * self.scale_sz[0])), int(np.floor(current_scale_factor* self.scale_sz[1]))),pos) patchL = cv2.resize(patchL, self.scale_sz_window) # convert into logpolar patchLp = cv2.logPolar(patchL.astype(np.float32), ((patchL.shape[1] - 1) / 2, (patchL.shape[0] - 1) / 2), self.mag, flags=cv2.INTER_LINEAR + cv2.WARP_FILL_OUTLIERS) patchLp = extract_hog_feature(patchLp, cell_size=4) tmp_sc, _, _ = self.estimate_scale(self.model_patchLp, patchLp, self.mag) tmp_sc = np.clip(tmp_sc, a_min=0.6, a_max=1.4) scale_factor=current_scale_factor*tmp_sc self.model_patchLp = (1 - self.learning_rate_scale) * self.model_patchLp + self.learning_rate_scale * patchLp return scale_factor
Example #11
Source File: image_ops.py From vel with MIT License | 5 votes |
def rotate_img(im, deg, mode=cv2.BORDER_CONSTANT, interpolation=cv2.INTER_AREA): """ Rotates an image by deg degrees Arguments: deg (float): degree to rotate. """ r,c,*_ = im.shape M = cv2.getRotationMatrix2D((c//2,r//2),deg,1) return cv2.warpAffine(im,M,(c,r), borderMode=mode, flags=cv2.WARP_FILL_OUTLIERS+interpolation)
Example #12
Source File: data_generator.py From pOSAL with MIT License | 4 votes |
def save_img(mask_path, data_save_path, img_name, prob_map, err_coord, crop_coord, DiscROI_size, org_img_size, threshold=0.5, pt=False): path = os.path.join(data_save_path, img_name) disc_map = resize(prob_map[:, :, 0], (DiscROI_size, DiscROI_size)) cup_map = resize(prob_map[:, :, 1], (DiscROI_size, DiscROI_size)) if pt: disc_map = cv2.linearPolar(rotate(disc_map, 90), (DiscROI_size/2, DiscROI_size/2), DiscROI_size/2, cv2.WARP_FILL_OUTLIERS + cv2.WARP_INVERSE_MAP) cup_map = cv2.linearPolar(rotate(cup_map, 90), (DiscROI_size/2, DiscROI_size/2), DiscROI_size/2, cv2.WARP_FILL_OUTLIERS + cv2.WARP_INVERSE_MAP) for i in range(5): disc_map = scipy.signal.medfilt2d(disc_map, 7) cup_map = scipy.signal.medfilt2d(cup_map, 7) disc_mask = (disc_map > threshold) # return binary mask cup_mask = (cup_map > threshold) disc_mask = morphology.binary_erosion(disc_mask, morphology.diamond(7)).astype(np.uint8) # return 0,1 cup_mask = morphology.binary_erosion(cup_mask, morphology.diamond(7)).astype(np.uint8) # return 0,1 disc_mask = get_largest_fillhole(disc_mask) cup_mask = get_largest_fillhole(cup_mask) disc_mask = morphology.binary_dilation(disc_mask, morphology.diamond(7)).astype(np.uint8) # return 0,1 cup_mask = morphology.binary_dilation(cup_mask, morphology.diamond(7)).astype(np.uint8) # return 0,1 disc_mask = get_largest_fillhole(disc_mask).astype(np.uint8) # return 0,1 cup_mask = get_largest_fillhole(cup_mask).astype(np.uint8) ROI_result = disc_mask + cup_mask ROI_result[ROI_result < 1] = 255 ROI_result[ROI_result < 2] = 128 ROI_result[ROI_result < 3] = 0 Img_result = np.zeros((org_img_size[0], org_img_size[1], 3), dtype=int) + 255 Img_result[crop_coord[0]:crop_coord[1], crop_coord[2]:crop_coord[3], 0] = ROI_result[err_coord[0]:err_coord[1], err_coord[2]:err_coord[3]] cv2.imwrite(path, Img_result[:,:,0]) if os.path.exists(mask_path): mask_path = os.path.join(mask_path, img_name) mask = np.asarray(image.load_img(mask_path)) gt_mask_path = os.path.join(data_save_path, 'gt_mask', img_name) gt_mask = 0.5 * mask + 0.5 * Img_result gt_mask = gt_mask.astype(np.uint8) imsave(gt_mask_path, gt_mask)