本文整理匯總了Python中cv2.WARP_FILL_OUTLIERS屬性的典型用法代碼示例。如果您正苦於以下問題:Python cv2.WARP_FILL_OUTLIERS屬性的具體用法?Python cv2.WARP_FILL_OUTLIERS怎麽用?Python cv2.WARP_FILL_OUTLIERS使用的例子?那麽, 這裏精選的屬性代碼示例或許可以為您提供幫助。您也可以進一步了解該屬性所在類cv2
的用法示例。
在下文中一共展示了cv2.WARP_FILL_OUTLIERS屬性的11個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: polar_transform
# 需要導入模塊: import cv2 [as 別名]
# 或者: from cv2 import WARP_FILL_OUTLIERS [as 別名]
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
示例2: init
# 需要導入模塊: import cv2 [as 別名]
# 或者: from cv2 import WARP_FILL_OUTLIERS [as 別名]
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)
示例3: rotate_image
# 需要導入模塊: import cv2 [as 別名]
# 或者: from cv2 import WARP_FILL_OUTLIERS [as 別名]
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
示例4: rectify_dataset
# 需要導入模塊: import cv2 [as 別名]
# 或者: from cv2 import WARP_FILL_OUTLIERS [as 別名]
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)
示例5: extract_patches_tensor
# 需要導入模塊: import cv2 [as 別名]
# 或者: from cv2 import WARP_FILL_OUTLIERS [as 別名]
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)
示例6: extract_patches_array
# 需要導入模塊: import cv2 [as 別名]
# 或者: from cv2 import WARP_FILL_OUTLIERS [as 別名]
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)
示例7: extract_patches_array_cpp
# 需要導入模塊: import cv2 [as 別名]
# 或者: from cv2 import WARP_FILL_OUTLIERS [as 別名]
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)
示例8: rotateImage
# 需要導入模塊: import cv2 [as 別名]
# 或者: from cv2 import WARP_FILL_OUTLIERS [as 別名]
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
示例9: update
# 需要導入模塊: import cv2 [as 別名]
# 或者: from cv2 import WARP_FILL_OUTLIERS [as 別名]
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
示例10: rotate_img
# 需要導入模塊: import cv2 [as 別名]
# 或者: from cv2 import WARP_FILL_OUTLIERS [as 別名]
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)
示例11: save_img
# 需要導入模塊: import cv2 [as 別名]
# 或者: from cv2 import WARP_FILL_OUTLIERS [as 別名]
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)