Spaces:
Sleeping
Sleeping
""" | |
Copyright (c) 2019-present NAVER Corp. | |
MIT License | |
""" | |
# -*- coding: utf-8 -*- | |
import numpy as np | |
from skimage import io | |
import cv2 | |
def loadImage(img_file): | |
img = io.imread(img_file) # RGB order | |
if img.shape[0] == 2: img = img[0] | |
if len(img.shape) == 2: img = cv2.cvtColor(img, cv2.COLOR_GRAY2RGB) | |
if img.shape[2] == 4: img = img[:, :, :3] | |
img = np.array(img) | |
return img | |
def normalizeMeanVariance(in_img, mean=(0.485, 0.456, 0.406), variance=(0.229, 0.224, 0.225)): | |
# should be RGB order | |
img = in_img.copy().astype(np.float32) | |
img -= np.array([mean[0] * 255.0, mean[1] * 255.0, mean[2] * 255.0], dtype=np.float32) | |
img /= np.array([variance[0] * 255.0, variance[1] * 255.0, variance[2] * 255.0], dtype=np.float32) | |
return img | |
def denormalizeMeanVariance(in_img, mean=(0.485, 0.456, 0.406), variance=(0.229, 0.224, 0.225)): | |
# should be RGB order | |
img = in_img.copy() | |
img *= variance | |
img += mean | |
img *= 255.0 | |
img = np.clip(img, 0, 255).astype(np.uint8) | |
return img | |
def resize_aspect_ratio(img, square_size, interpolation, mag_ratio=1): | |
height, width, channel = img.shape | |
# magnify image size | |
target_size = mag_ratio * max(height, width) | |
# set original image size | |
if target_size > square_size: | |
target_size = square_size | |
ratio = target_size / max(height, width) | |
target_h, target_w = int(height * ratio), int(width * ratio) | |
proc = cv2.resize(img, (target_w, target_h), interpolation=interpolation) | |
# make canvas and paste image | |
target_h32, target_w32 = target_h, target_w | |
if target_h % 32 != 0: | |
target_h32 = target_h + (32 - target_h % 32) | |
if target_w % 32 != 0: | |
target_w32 = target_w + (32 - target_w % 32) | |
resized = np.zeros((target_h32, target_w32, channel), dtype=np.float32) | |
resized[0:target_h, 0:target_w, :] = proc | |
target_h, target_w = target_h32, target_w32 | |
size_heatmap = (int(target_w / 2), int(target_h / 2)) | |
return resized, ratio, size_heatmap | |
def cvt2HeatmapImg(img): | |
img = (np.clip(img, 0, 1) * 255).astype(np.uint8) | |
img = cv2.applyColorMap(img, cv2.COLORMAP_JET) | |
return img | |