本文整理匯總了Python中cv2.resize方法的典型用法代碼示例。如果您正苦於以下問題:Python cv2.resize方法的具體用法?Python cv2.resize怎麽用?Python cv2.resize使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類cv2
的用法示例。
在下文中一共展示了cv2.resize方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: resize
# 需要導入模塊: import cv2 [as 別名]
# 或者: from cv2 import resize [as 別名]
def resize(video, size, interpolation):
if interpolation == 'bilinear':
inter = cv2.INTER_LINEAR
elif interpolation == 'nearest':
inter = cv2.INTER_NEAREST
else:
raise NotImplementedError
shape = video.shape[:-3]
video = video.reshape((-1, *video.shape[-3:]))
resized_video = np.zeros((video.shape[0], size[1], size[0], video.shape[-1]))
for i in range(video.shape[0]):
img = cv2.resize(video[i], size, inter)
if len(img.shape) == 2:
img = img[:, :, np.newaxis]
resized_video[i] = img
return resized_video.reshape((*shape, size[1], size[0], video.shape[-1]))
示例2: __call__
# 需要導入模塊: import cv2 [as 別名]
# 或者: from cv2 import resize [as 別名]
def __call__(self, video):
"""
Args:
video (numpy.ndarray): Video to be scaled.
Returns:
numpy.ndarray: Rescaled video.
"""
if isinstance(self.size, int):
w, h = video.shape[-2], video.shape[-3]
if (w <= h and w == self.size) or (h <= w and h == self.size):
return video
if w < h:
ow = self.size
oh = int(self.size*h/w)
return resize(video, (ow, oh), self.interpolation)
else:
oh = self.size
ow = int(self.size*w/h)
return resize(video, (ow, oh), self.interpolation)
else:
return resize(video, self.size, self.interpolation)
示例3: step
# 需要導入模塊: import cv2 [as 別名]
# 或者: from cv2 import resize [as 別名]
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]))
示例4: detect
# 需要導入模塊: import cv2 [as 別名]
# 或者: from cv2 import resize [as 別名]
def detect(self, img):
"""
img: rgb 3 channel
"""
minsize = 20 # minimum size of face
threshold = [0.6, 0.7, 0.7] # three steps's threshold
factor = 0.709 # scale factor
bounding_boxes, _ = FaceDet.detect_face(
img, minsize, self.pnet, self.rnet, self.onet, threshold, factor)
area = (bounding_boxes[:, 2] - bounding_boxes[:, 0]) * (bounding_boxes[:, 3] - bounding_boxes[:, 1])
face_idx = area.argmax()
bbox = bounding_boxes[face_idx][:4] # xy,xy
margin = 32
x0 = np.maximum(bbox[0] - margin // 2, 0)
y0 = np.maximum(bbox[1] - margin // 2, 0)
x1 = np.minimum(bbox[2] + margin // 2, img.shape[1])
y1 = np.minimum(bbox[3] + margin // 2, img.shape[0])
x0, y0, x1, y1 = bbox = [int(k + 0.5) for k in [x0, y0, x1, y1]]
cropped = img[y0:y1, x0:x1, :]
scaled = cv2.resize(cropped, (160, 160), interpolation=cv2.INTER_LINEAR)
return scaled, bbox
示例5: forward_ocr
# 需要導入模塊: import cv2 [as 別名]
# 或者: from cv2 import resize [as 別名]
def forward_ocr(self, img_):
img_ = cv2.resize(img_, (80, 30))
img_ = img_.transpose(1, 0)
print(img_.shape)
img_ = img_.reshape((1, 80, 30))
print(img_.shape)
# img_ = img_.reshape((80 * 30))
img_ = np.multiply(img_, 1 / 255.0)
self.predictor.forward(data=img_, **self.init_state_dict)
prob = self.predictor.get_output(0)
label_list = []
for p in prob:
print(np.argsort(p))
max_index = np.argsort(p)[::-1][0]
label_list.append(max_index)
return self.__get_string(label_list)
示例6: resize
# 需要導入模塊: import cv2 [as 別名]
# 或者: from cv2 import resize [as 別名]
def resize(im, short, max_size):
"""
only resize input image to target size and return scale
:param im: BGR image input by opencv
:param short: one dimensional size (the short side)
:param max_size: one dimensional max size (the long side)
:return: resized image (NDArray) and scale (float)
"""
im_shape = im.shape
im_size_min = np.min(im_shape[0:2])
im_size_max = np.max(im_shape[0:2])
im_scale = float(short) / float(im_size_min)
# prevent bigger axis from being more than max_size:
if np.round(im_scale * im_size_max) > max_size:
im_scale = float(max_size) / float(im_size_max)
im = cv2.resize(im, None, None, fx=im_scale, fy=im_scale, interpolation=cv2.INTER_LINEAR)
return im, im_scale
示例7: test_augmenters
# 需要導入模塊: import cv2 [as 別名]
# 或者: from cv2 import resize [as 別名]
def test_augmenters(self):
# ColorNormalizeAug
mean = np.random.rand(3) * 255
std = np.random.rand(3) + 1
width = np.random.randint(100, 500)
height = np.random.randint(100, 500)
src = np.random.rand(height, width, 3) * 255.
# We test numpy and mxnet NDArray inputs
color_norm_aug = mx.image.ColorNormalizeAug(mean=mx.nd.array(mean), std=std)
out_image = color_norm_aug(mx.nd.array(src))
assert_almost_equal(out_image.asnumpy(), (src - mean) / std, atol=1e-3)
# only test if all augmenters will work
# TODO(Joshua Zhang): verify the augmenter outputs
im_list = [[0, x] for x in TestImage.IMAGES]
test_iter = mx.image.ImageIter(2, (3, 224, 224), label_width=1, imglist=im_list,
resize=640, rand_crop=True, rand_resize=True, rand_mirror=True, mean=True,
std=np.array([1.1, 1.03, 1.05]), brightness=0.1, contrast=0.1, saturation=0.1,
hue=0.1, pca_noise=0.1, rand_gray=0.2, inter_method=10, path_root='', shuffle=True)
for batch in test_iter:
pass
示例8: resize_maps
# 需要導入模塊: import cv2 [as 別名]
# 或者: from cv2 import resize [as 別名]
def resize_maps(map, map_scales, resize_method):
scaled_maps = []
for i, sc in enumerate(map_scales):
if resize_method == 'antialiasing':
# Resize using open cv so that we can compute the size.
# Use PIL resize to use anti aliasing feature.
map_ = cv2.resize(map*1, None, None, fx=sc, fy=sc, interpolation=cv2.INTER_LINEAR)
w = map_.shape[1]; h = map_.shape[0]
map_img = PIL.Image.fromarray((map*255).astype(np.uint8))
map__img = map_img.resize((w,h), PIL.Image.ANTIALIAS)
map_ = np.asarray(map__img).astype(np.float32)
map_ = map_/255.
map_ = np.minimum(map_, 1.0)
map_ = np.maximum(map_, 0.0)
elif resize_method == 'linear_noantialiasing':
map_ = cv2.resize(map*1, None, None, fx=sc, fy=sc, interpolation=cv2.INTER_LINEAR)
else:
logging.error('Unknown resizing method')
scaled_maps.append(map_)
return scaled_maps
示例9: load_image
# 需要導入模塊: import cv2 [as 別名]
# 或者: from cv2 import resize [as 別名]
def load_image(self, index):
# loads 1 image from dataset
img = self.imgs[index]
if img is None:
img_path = self.img_files[index]
img = cv2.imread(img_path) # BGR
assert img is not None, 'Image Not Found ' + img_path
r = self.img_size / max(img.shape) # size ratio
if self.augment and r < 1: # if training (NOT testing), downsize to inference shape
h, w, _ = img.shape
img = cv2.resize(img, (int(w * r), int(h * r)), interpolation=cv2.INTER_LINEAR) # _LINEAR fastest
# Augment colorspace
if self.augment:
augment_hsv(img, hgain=self.hyp['hsv_h'], sgain=self.hyp['hsv_s'], vgain=self.hyp['hsv_v'])
return img
示例10: prep_im_for_blob
# 需要導入模塊: import cv2 [as 別名]
# 或者: from cv2 import resize [as 別名]
def prep_im_for_blob(im, pixel_means, pixel_stds, target_size, max_size):
"""Mean subtract and scale an image for use in a blob."""
im = im.astype(np.float32, copy=False)
im /= 255.0
im -= pixel_means
im /= pixel_stds
# im = im[:, :, ::-1]
im_shape = im.shape
im_size_min = np.min(im_shape[0:2])
im_size_max = np.max(im_shape[0:2])
im_scale = float(target_size) / float(im_size_min)
# Prevent the biggest axis from being more than MAX_SIZE
# if np.round(im_scale * im_size_max) > max_size:
# im_scale = float(max_size) / float(im_size_max)
# im = imresize(im, im_scale)
im = cv2.resize(im, None, None, fx=im_scale, fy=im_scale,
interpolation=cv2.INTER_LINEAR)
return im, im_scale
示例11: grid_batch_images
# 需要導入模塊: import cv2 [as 別名]
# 或者: from cv2 import resize [as 別名]
def grid_batch_images(self, images):
n, h, w, c = images.shape
a = int(math.floor(np.sqrt(n)))
# images = (((images - images.min()) * 255) / (images.max() - images.min())).astype(np.uint8)
images = images.astype(np.uint8)
images_in_square = np.reshape(images[:a * a], (a, a, h, w, c))
new_img = np.zeros((h * a, w * a, c), dtype=np.uint8)
for col_i, col_images in enumerate(images_in_square):
for row_i, image in enumerate(col_images):
new_img[col_i * h: (1 + col_i) * h, row_i * w: (1 + row_i) * w] = image
resolution = self.cfg.resolution
if self.cfg.resolution != h:
scale = resolution / h
new_img = cv2.resize(new_img, None, fx=scale, fy=scale,
interpolation=cv2.INTER_NEAREST)
return new_img
示例12: __getitem__
# 需要導入模塊: import cv2 [as 別名]
# 或者: from cv2 import resize [as 別名]
def __getitem__(self, index, to_tensor=True):
fn = self.image_fns[index]
img = cv2.cvtColor(cv2.imread(fn, 1), cv2.COLOR_BGR2RGB)
img, pad_top, pad_left = KuzushijiDataset.pad_to_ratio(img, ratio=1.5)
h, w = img.shape[:2]
# print(h / w, pad_left, pad_top)
assert img.ndim == 3
scaled_imgs = []
for scale in self.scales:
h_scale = int(scale * self.height)
w_scale = int(scale * self.width)
simg = cv2.resize(img, (w_scale, h_scale))
if to_tensor:
assert simg.ndim == 3, simg.ndim
simg = simg.transpose((2, 0, 1))
simg = th.from_numpy(simg.copy())
scaled_imgs.append(simg)
return scaled_imgs + [fn]
示例13: __init__
# 需要導入模塊: import cv2 [as 別名]
# 或者: from cv2 import resize [as 別名]
def __init__(self, img, use_numpy_fft=True, gauss_kernel=(5, 5)):
"""Constructor
This method initializes the saliency algorithm.
:param img: an RGB input image
:param use_numpy_fft: flag whether to use NumPy's FFT (True) or
OpenCV's FFT (False)
:param gauss_kernel: Kernel size for Gaussian blur
"""
self.use_numpy_fft = use_numpy_fft
self.gauss_kernel = gauss_kernel
self.frame_orig = img
# downsample image for processing
self.small_shape = (64, 64)
self.frame_small = cv2.resize(img, self.small_shape[1::-1])
# whether we need to do the math (True) or it has already
# been done (False)
self.need_saliency_map = True
示例14: resized_crop
# 需要導入模塊: import cv2 [as 別名]
# 或者: from cv2 import resize [as 別名]
def resized_crop(img, i, j, h, w, size, interpolation='BILINEAR'):
"""Crop the given CV Image and resize it to desired size.
Args:
img (CV Image): Image to be cropped.
i (int): i in (i,j) i.e coordinates of the upper left corner
j (int): j in (i,j) i.e coordinates of the upper left corner
h (int): Height of the cropped image.
w (int): Width of the cropped image.
size (sequence or int): Desired output size. Same semantics as ``resize``.
interpolation (int, optional): Desired interpolation. Default is
``BILINEAR``.
Returns:
CV Image: Cropped image.
"""
assert _is_numpy_image(img), 'img should be CV Image'
img = crop(img, i, j, h, w)
img = resize(img, size, interpolation)
return img
示例15: prepare
# 需要導入模塊: import cv2 [as 別名]
# 或者: from cv2 import resize [as 別名]
def prepare(input):
# preprocessing the image input
clean = cv2.fastNlMeansDenoising(input)
ret, tresh = cv2.threshold(clean, 127, 1, cv2.THRESH_BINARY_INV)
img = crop(tresh)
# 40x10 image as a flatten array
flatten_img = cv2.resize(img, (40, 10), interpolation=cv2.INTER_AREA).flatten()
# resize to 400x100
resized = cv2.resize(img, (400, 100), interpolation=cv2.INTER_AREA)
columns = np.sum(resized, axis=0) # sum of all columns
lines = np.sum(resized, axis=1) # sum of all lines
h, w = img.shape
aspect = w / h
return [*flatten_img, *columns, *lines, aspect]