Python PIL.Image.BICUBIC Examples
The following are 30
code examples of PIL.Image.BICUBIC().
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
PIL.Image
, or try the search function
.

Example #1
Source File: perspective.py From maze-cv with MIT License | 7 votes |
def transform(startpoints, endpoints, im): '''Perform a perspective transformation on an image where startpoints are moved to endpoints, and the image is streched accordingly.''' width, height = im.size coeffs = find_coeffs(endpoints, startpoints) im = im.transform((width, height), Image.PERSPECTIVE, coeffs, Image.BICUBIC) return im
Example #2
Source File: mask_generators.py From vaeac with MIT License | 7 votes |
def regenerate_cache(self): """ Resamples the big matrix and resets the counter of the total number of elements in the returned masks. """ low_size = int(self.resolution * self.max_size) low_pattern = self.rng.uniform(0, 1, size=(low_size, low_size)) * 255 low_pattern = torch.from_numpy(low_pattern.astype('float32')) pattern = transforms.Compose([ transforms.ToPILImage(), transforms.Resize(self.max_size, Image.BICUBIC), transforms.ToTensor(), ])(low_pattern[None])[0] pattern = torch.lt(pattern, self.density).byte() self.pattern = pattern.byte() self.points_used = 0
Example #3
Source File: super_resolution.py From dynamic-training-with-apache-mxnet-on-aws with Apache License 2.0 | 6 votes |
def resolve(ctx): from PIL import Image if isinstance(ctx, list): ctx = [ctx[0]] net.load_parameters('superres.params', ctx=ctx) img = Image.open(opt.resolve_img).convert('YCbCr') y, cb, cr = img.split() data = mx.nd.expand_dims(mx.nd.expand_dims(mx.nd.array(y), axis=0), axis=0) out_img_y = mx.nd.reshape(net(data), shape=(-3, -2)).asnumpy() out_img_y = out_img_y.clip(0, 255) out_img_y = Image.fromarray(np.uint8(out_img_y[0]), mode='L') out_img_cb = cb.resize(out_img_y.size, Image.BICUBIC) out_img_cr = cr.resize(out_img_y.size, Image.BICUBIC) out_img = Image.merge('YCbCr', [out_img_y, out_img_cb, out_img_cr]).convert('RGB') out_img.save('resolved.png')
Example #4
Source File: test.py From Depth-Map-Prediction with GNU General Public License v3.0 | 6 votes |
def main(): # location of depth module, config and parameters module_fn = 'models/depth.py' config_fn = 'models/depth.conf'#网络结构 params_dir = 'weights/depth'#网络相关参数 # load depth network machine = net.create_machine(module_fn, config_fn, params_dir) # demo image rgb = Image.open('demo_nyud_rgb.jpg') rgb = rgb.resize((320, 240), Image.BICUBIC) # build depth inference function and run rgb_imgs = np.asarray(rgb).reshape((1, 240, 320, 3)) pred_depths = machine.infer_depth(rgb_imgs) # save prediction (m, M) = (pred_depths.min(), pred_depths.max()) depth_img_np = (pred_depths[0] - m) / (M - m) depth_img = Image.fromarray((255*depth_img_np).astype(np.uint8)) depth_img.save('demo_nyud_depth_prediction.png')
Example #5
Source File: data_processing.py From iAI with MIT License | 6 votes |
def _load_and_resize(self, input_image_path): """Load an image from the specified path and resize it to the input resolution. Return the input image before resizing as a PIL Image (required for visualization), and the resized image as a NumPy float array. Keyword arguments: input_image_path -- string path of the image to be loaded """ image_raw = Image.open(input_image_path) # Expecting yolo_input_resolution in (height, width) format, adjusting to PIL # convention (width, height) in PIL: new_resolution = ( self.yolo_input_resolution[1], self.yolo_input_resolution[0]) image_resized = image_raw.resize( new_resolution, resample=Image.BICUBIC) image_resized = np.array(image_resized, dtype=np.float32, order='C') return image_raw, image_resized
Example #6
Source File: data_processing.py From iAI with MIT License | 6 votes |
def _load_and_resize(self, input_image_path): """Load an image from the specified path and resize it to the input resolution. Return the input image before resizing as a PIL Image (required for visualization), and the resized image as a NumPy float array. Keyword arguments: input_image_path -- string path of the image to be loaded """ image_raw = Image.open(input_image_path) # Expecting yolo_input_resolution in (height, width) format, adjusting to PIL # convention (width, height) in PIL: new_resolution = ( self.yolo_input_resolution[1], self.yolo_input_resolution[0]) image_resized = image_raw.resize( new_resolution, resample=Image.BICUBIC) image_resized = np.array(image_resized, dtype=np.float32, order='C') return image_raw, image_resized
Example #7
Source File: util.py From 2019-CCF-BDCI-OCR-MCZJ-OCR-IdentificationIDElement with MIT License | 6 votes |
def save_image(image_numpy, image_path, aspect_ratio=1.0): """Save a numpy image to the disk Parameters: image_numpy (numpy array) -- input numpy array image_path (str) -- the path of the image """ image_pil = Image.fromarray(image_numpy) h, w, _ = image_numpy.shape if aspect_ratio > 1.0: image_pil = image_pil.resize((h, int(w * aspect_ratio)), Image.BICUBIC) if aspect_ratio < 1.0: image_pil = image_pil.resize((int(h / aspect_ratio), w), Image.BICUBIC) image_pil.save(image_path)
Example #8
Source File: openwpm.py From PrivacyScore with GNU General Public License v3.0 | 6 votes |
def pixelize_screenshot(screenshot, screenshot_pixelized, target_width=390, pixelsize=3): """ Thumbnail a screenshot to `target_width` and pixelize it. :param screenshot: Screenshot to be thumbnailed in pixelized :param screenshot_pixelized: File to which the result should be written :param target_width: Width of the final thumbnail :param pixelsize: Size of the final pixels :return: None """ if target_width % pixelsize != 0: raise ValueError("pixelsize must divide target_width") img = Image.open(screenshot) width, height = img.size if height > width: img = img.crop((0, 0, width, width)) height = width undersampling_width = target_width // pixelsize ratio = width / height new_height = int(undersampling_width / ratio) img = img.resize((undersampling_width, new_height), Image.BICUBIC) img = img.resize((target_width, new_height * pixelsize), Image.NEAREST) img.save(screenshot_pixelized, format='png')
Example #9
Source File: Dataloader.py From Text_Segmentation_Image_Inpainting with GNU General Public License v3.0 | 6 votes |
def process_images(self, clean, mask): i, j, h, w = RandomResizedCrop.get_params(clean, scale=(0.5, 2.0), ratio=(3. / 4., 4. / 3.)) clean_img = resized_crop(clean, i, j, h, w, size=self.img_size, interpolation=Image.BICUBIC) mask = resized_crop(mask, i, j, h, w, self.img_size, interpolation=Image.BICUBIC) # get mask before further image augment # mask = self.get_mask(raw_img, clean_img) if self.add_random_masks: mask = random_masks(mask.copy(), size=self.img_size[0], offset=10) mask = np.where(np.array(mask) > brightness_difference * 255, np.uint8(255), np.uint8(0)) mask = cv2.dilate(mask, np.ones((10, 10), np.uint8), iterations=1) mask = np.expand_dims(mask, -1) mask_t = to_tensor(mask) # mask_t = (mask_t > brightness_difference).float() # mask_t, _ = torch.max(mask_t, dim=0, keepdim=True) binary_mask = (1 - mask_t) # valid positions are 1; holes are 0 binary_mask = binary_mask.expand(3, -1, -1) clean_img = self.transformer(clean_img) corrupted_img = clean_img * binary_mask return corrupted_img, binary_mask, clean_img
Example #10
Source File: Dataloader.py From Text_Segmentation_Image_Inpainting with GNU General Public License v3.0 | 6 votes |
def resize_pad_tensor(self, pil_img): origin = to_tensor(pil_img).unsqueeze(0) fix_len = self.resize long = max(pil_img.size) ratio = fix_len / long new_size = tuple(map(lambda x: int(x * ratio) // 8 * 8, pil_img.size)) img = pil_img.resize(new_size, Image.BICUBIC) # img = pil_img img = self.transformer(img).unsqueeze(0) _, _, h, w = img.size() if fix_len > w: boarder_pad = (0, fix_len - w, 0, 0) else: boarder_pad = (0, 0, 0, fix_len - h) img = pad(img, boarder_pad, value=0) mask_resizer = self.resize_mask(boarder_pad, pil_img.size) return img, origin, mask_resizer
Example #11
Source File: dataset.py From STARnet with MIT License | 6 votes |
def load_img(filepath, scale): list=os.listdir(filepath) list.sort() rate = 1 #for vimeo90k-setuplet (multiple temporal scale) #if random.random() < 0.5: # rate = 2 index = randrange(0, len(list)-(2*rate)) target = [modcrop(Image.open(filepath+'/'+list[i]).convert('RGB'), scale) for i in range(index, index+3*rate, rate)] h,w = target[0].size h_in,w_in = int(h//scale), int(w//scale) target_l = target[1].resize((h_in,w_in), Image.BICUBIC) input = [target[j].resize((h_in,w_in), Image.BICUBIC) for j in [0,2]] return input, target, target_l, list
Example #12
Source File: base_dataset.py From Recycle-GAN with MIT License | 6 votes |
def get_transform(opt): transform_list = [] if opt.resize_or_crop == 'resize_and_crop': osize = [opt.loadSize, opt.loadSize] transform_list.append(transforms.Scale(osize, Image.BICUBIC)) transform_list.append(transforms.RandomCrop(opt.fineSize)) elif opt.resize_or_crop == 'crop': transform_list.append(transforms.RandomCrop(opt.fineSize)) elif opt.resize_or_crop == 'scale_width': transform_list.append(transforms.Lambda( lambda img: __scale_width(img, opt.fineSize))) elif opt.resize_or_crop == 'scale_width_and_crop': transform_list.append(transforms.Lambda( lambda img: __scale_width(img, opt.loadSize))) transform_list.append(transforms.RandomCrop(opt.fineSize)) if opt.isTrain and not opt.no_flip: transform_list.append(transforms.RandomHorizontalFlip()) transform_list += [transforms.ToTensor(), transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))] return transforms.Compose(transform_list)
Example #13
Source File: utils.py From Tenma with MIT License | 6 votes |
def optimize_image(image_path, output_quality, base_width): ''' Optimizes image and returns a filepath string ''' img = Image.open(image_path) # Check that it's a supported format format = str(img.format) if format == 'PNG' or format == 'JPEG': if base_width < img.size[0]: wpercent = (base_width/float(img.size[0])) hsize = int((float(img.size[1])*float(wpercent))) img = img.resize((base_width,hsize), Image.BICUBIC) # The 'quality' option is ignored for PNG files img.save(image_path, quality=output_quality, optimize=True) return image_path #==============================================================================
Example #14
Source File: data_utils.py From conditional-motion-propagation with MIT License | 6 votes |
def image_flow_resize(img1, img2, flow, short_size=None, long_size=None): assert (short_size is None) ^ (long_size is None) w, h = img1.width, img1.height if short_size is not None: if w < h: neww = short_size newh = int(short_size / float(w) * h) else: neww = int(short_size / float(h) * w) newh = short_size else: if w < h: neww = int(long_size / float(h) * w) newh = long_size else: neww = long_size newh = int(long_size / float(w) * h) img1 = img1.resize((neww, newh), Image.BICUBIC) img2 = img2.resize((neww, newh), Image.BICUBIC) ratio = float(newh) / h flow = cv2.resize(flow.copy(), (neww, newh), interpolation=cv2.INTER_LINEAR) * ratio return img1, img2, flow, ratio
Example #15
Source File: data_utils.py From conditional-motion-propagation with MIT License | 6 votes |
def image_resize(img, short_size=None, long_size=None): assert (short_size is None) ^ (long_size is None) w, h = img.width, img.height if short_size is not None: if w < h: neww = short_size newh = int(short_size / float(w) * h) else: neww = int(short_size / float(h) * w) newh = short_size else: if w < h: neww = int(long_size / float(h) * w) newh = long_size else: neww = long_size newh = int(long_size / float(w) * h) img = img.resize((neww, newh), Image.BICUBIC) return img, [w, h]
Example #16
Source File: super_resolution.py From dynamic-training-with-apache-mxnet-on-aws with Apache License 2.0 | 5 votes |
def perform_inference(sym, arg_params, aux_params, input_img, img_cb, img_cr): """Perform inference on image using mxnet""" metadata = onnx_mxnet.get_model_metadata('super_resolution.onnx') data_names = [input_name[0] for input_name in metadata.get('input_tensor_data')] # create module mod = mx.mod.Module(symbol=sym, data_names=data_names, label_names=None) mod.bind(for_training=False, data_shapes=[(data_names[0], input_img.shape)]) mod.set_params(arg_params=arg_params, aux_params=aux_params) # run inference batch = namedtuple('Batch', ['data']) mod.forward(batch([mx.nd.array(input_img)])) # Save the result img_out_y = Image.fromarray(np.uint8(mod.get_outputs()[0][0][0]. asnumpy().clip(0, 255)), mode='L') result_img = Image.merge( "YCbCr", [img_out_y, img_cb.resize(img_out_y.size, Image.BICUBIC), img_cr.resize(img_out_y.size, Image.BICUBIC)]).convert("RGB") output_img_dim = 672 assert result_img.size == (output_img_dim, output_img_dim) LOGGER.info("Super Resolution example success.") result_img.save("super_res_output.jpg") return result_img
Example #17
Source File: image_utils.py From tools_python with Apache License 2.0 | 5 votes |
def resize_image(target_image_path, target_size): """ 调整图片大小,缺失的部分用黑色填充 :param target_image_path: 图片路径 :param target_size: 分辨率大小 :return: """ image = Image.open(target_image_path) iw, ih = image.size # 原始图像的尺寸 w, h = target_size # 目标图像的尺寸 scale = min(w / iw, h / ih) # 转换的最小比例 # 保证长或宽,至少一个符合目标图像的尺寸 nw = int(iw * scale) nh = int(ih * scale) image = image.resize((nw, nh), Image.BICUBIC) # 缩小图像 # image.show() new_image = Image.new('RGB', target_size, (0, 0, 0, 0)) # 生成黑色图像 # // 为整数除法,计算图像的位置 new_image.paste(image, ((w - nw) // 2, (h - nh) // 2)) # 将图像填充为中间图像,两侧为灰色的样式 # new_image.show() # 覆盖原图片 new_image.save(target_image_path)
Example #18
Source File: images_loader.py From L3C-PyTorch with GNU General Public License v3.0 | 5 votes |
def resize_bicubic(t, fac): img = _tensor_to_image(t) # to PIL h, w = img.size img = img.resize((int(h * fac), int(w * fac)), Image.BICUBIC) t = to_tensor_not_normalized(img) # back to 3HW uint8 tensor return t
Example #19
Source File: fisheye.py From DualFisheye with MIT License | 5 votes |
def downsample(self, dsamp): # Adjust lens parameters. self.lens.downsample(dsamp) # Determine the new image dimensions. # Note: PIL uses cols, rows whereas numpy uses rows, cols shape = (self.img.shape[1] / dsamp, # Cols self.img.shape[0] / dsamp) # Rows # Convert matrix back to PIL Image and resample. img = Image.fromarray(self.img) img.thumbnail(shape, Image.BICUBIC) # Convert back and update size. self._update_img(img) # Given an 3xN array of "XYZ" vectors in panorama space (+X = Front), # convert each ray to 2xN coordinates in "UV" fisheye image space.
Example #20
Source File: utils.py From keras-yolo3 with MIT License | 5 votes |
def letterbox_image(image, size): '''resize image with unchanged aspect ratio using padding''' iw, ih = image.size w, h = size scale = min(w/iw, h/ih) nw = int(iw*scale) nh = int(ih*scale) image = image.resize((nw,nh), Image.BICUBIC) new_image = Image.new('RGB', size, (128,128,128)) new_image.paste(image, ((w-nw)//2, (h-nh)//2)) return new_image
Example #21
Source File: test.py From Semantic-Segmentation with MIT License | 5 votes |
def letterbox_image(image, size, type): '''resize image with unchanged aspect ratio using padding''' iw, ih = image.size w, h = size scale = min(w/iw, h/ih) nw = int(iw*scale) nh = int(ih*scale) image = image.resize((nw,nh), Image.BICUBIC) if(type=="jpg"): new_image = Image.new('RGB', size, (0,0,0)) elif(type=="png"): new_image = Image.new('RGB', size, (0,0,0)) new_image.paste(image, ((w-nw)//2, (h-nh)//2)) return new_image,nw,nh
Example #22
Source File: predict.py From Semantic-Segmentation with MIT License | 5 votes |
def letterbox_image(image, size): '''resize image with unchanged aspect ratio using padding''' iw, ih = image.size w, h = size scale = min(w/iw, h/ih) nw = int(iw*scale) nh = int(ih*scale) image = image.resize((nw,nh), Image.BICUBIC) new_image = Image.new('RGB', size, (0,0,0)) new_image.paste(image, ((w-nw)//2, (h-nh)//2)) return new_image,nw,nh
Example #23
Source File: base_dataset.py From 2019-CCF-BDCI-OCR-MCZJ-OCR-IdentificationIDElement with MIT License | 5 votes |
def get_transform(opt, params=None, grayscale=False, method=Image.BICUBIC, convert=True): transform_list = [] if grayscale: transform_list.append(transforms.Grayscale(1)) if 'resize' in opt.preprocess: osize = [opt.load_size, opt.load_size] transform_list.append(transforms.Resize(osize, method)) elif 'scale_width' in opt.preprocess: transform_list.append(transforms.Lambda(lambda img: __scale_width(img, opt.load_size, method))) if 'crop' in opt.preprocess: if params is None: transform_list.append(transforms.RandomCrop(opt.crop_size)) else: transform_list.append(transforms.Lambda(lambda img: __crop(img, params['crop_pos'], opt.crop_size))) if opt.preprocess == 'none': transform_list.append(transforms.Lambda(lambda img: __make_power_2(img, base=4, method=method))) if not opt.no_flip: if params is None: transform_list.append(transforms.RandomHorizontalFlip()) elif params['flip']: transform_list.append(transforms.Lambda(lambda img: __flip(img, params['flip']))) ## if convert: transform_list += [transforms.ToTensor()] if grayscale: transform_list += [transforms.Normalize((0.5,), (0.5,))] else: transform_list += [transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))] return transforms.Compose(transform_list)
Example #24
Source File: base_dataset.py From 2019-CCF-BDCI-OCR-MCZJ-OCR-IdentificationIDElement with MIT License | 5 votes |
def __make_power_2(img, base, method=Image.BICUBIC): ow, oh = img.size h = int(round(oh / base) * base) w = int(round(ow / base) * base) if (h == oh) and (w == ow): return img __print_size_warning(ow, oh, w, h) return img.resize((w, h), method)
Example #25
Source File: base_dataset.py From 2019-CCF-BDCI-OCR-MCZJ-OCR-IdentificationIDElement with MIT License | 5 votes |
def __scale_width(img, target_width, method=Image.BICUBIC): ow, oh = img.size if (ow == target_width): return img w = target_width h = int(target_width * oh / ow) return img.resize((w, h), method)
Example #26
Source File: image_fetcher.py From Penny-Dreadful-Tools with GNU General Public License v3.0 | 5 votes |
def generate_banner(names: List[str], background: str, v_crop: int = 33) -> str: cards = [oracle.load_card(name) for name in names] out_filepath = determine_filepath(cards, f'banner-{background}{v_crop}-') if fetch_tools.acceptable_file(out_filepath): return out_filepath canvas = Image.new('RGB', (1920, 210)) c = oracle.load_card(background) file_path = await download_scryfall_art_crop(c) if file_path: with Image.open(file_path) as img: h = v_crop / 100 * 1315 canvas.paste(img.resize((1920, 1315), Image.BICUBIC).crop((0, h, 1920, h + 210))) n = math.ceil(len(cards) / 2) x = 800 for c in cards[:n]: ip = await download_scryfall_png(c) with Image.open(ip) as img: img = img.resize((160, 213), Image.LANCZOS) canvas.paste(img, (x, 30)) x = x + img.width + 10 x = 900 for c in cards[n:]: ip = await download_scryfall_png(c) with Image.open(ip) as img: img = img.resize((160, 213), Image.LANCZOS) canvas.paste(img, (x, 60)) x = x + img.width + 10 canvas.save(out_filepath) return out_filepath
Example #27
Source File: predict-amd64.py From Custom-vision-service-iot-edge-raspberry-pi with MIT License | 5 votes |
def resize_down_to_1600_max_dim(image): w,h = image.size if h < 1600 and w < 1600: return image new_size = (1600 * w // h, 1600) if (h > w) else (1600, 1600 * h // w) log_msg("resize: " + str(w) + "x" + str(h) + " to " + str(new_size[0]) + "x" + str(new_size[1])) if max(new_size) / max(image.size) >= 0.5: method = Image.BILINEAR else: method = Image.BICUBIC return image.resize(new_size, method)
Example #28
Source File: predict.py From Custom-vision-service-iot-edge-raspberry-pi with MIT License | 5 votes |
def resize_down_to_1600_max_dim(image): w,h = image.size if h < 1600 and w < 1600: return image new_size = (1600 * w // h, 1600) if (h > w) else (1600, 1600 * h // w) log_msg("resize: " + str(w) + "x" + str(h) + " to " + str(new_size[0]) + "x" + str(new_size[1])) if max(new_size) / max(image.size) >= 0.5: method = Image.BILINEAR else: method = Image.BICUBIC return image.resize(new_size, method)
Example #29
Source File: utils.py From multi-object-tracking with GNU General Public License v3.0 | 5 votes |
def letterbox_image(image, size): '''resize image with unchanged aspect ratio using padding''' image_w, image_h = image.size w, h = size new_w = int(image_w * min(w*1.0/image_w, h*1.0/image_h)) new_h = int(image_h * min(w*1.0/image_w, h*1.0/image_h)) resized_image = image.resize((new_w,new_h), Image.BICUBIC) boxed_image = Image.new('RGB', size, (128,128,128)) boxed_image.paste(resized_image, ((w-new_w)//2,(h-new_h)//2)) return boxed_image
Example #30
Source File: renderers.py From asciimatics with Apache License 2.0 | 5 votes |
def __init__(self, filename, height=30, colours=8): """ :param filename: The name of the file to render. :param height: The height of the text rendered image. :param colours: The number of colours the terminal supports. """ super(ImageFile, self).__init__() with Image.open(filename) as image: background = image.info['background'] if 'background' in \ image.info else None for frame in _ImageSequence(image): ascii_image = "" frame = frame.resize( (int(frame.size[0] * height * 2.0 / frame.size[1]), height), Image.BICUBIC) grey_frame = frame.convert('L') for py in range(0, grey_frame.size[1]): ascii_image += "\n" for px in range(0, grey_frame.size[0]): real_col = frame.getpixel((px, py)) col = grey_frame.getpixel((px, py)) if real_col == background: ascii_image += " " else: if colours >= 256: ascii_image += "${%d}" % (232 + col * 23 // 256) else: ascii_image += "${%d,%d}" % ( 7 if col >= 85 else 0, Screen.A_BOLD if col < 85 or col > 170 else Screen.A_NORMAL ) ascii_image += self._greyscale[ (int(col) * len(self._greyscale)) // 256] self._images.append(ascii_image)