File size: 1,816 Bytes
55654c5 d33294b 55654c5 d33294b d30c3db d33294b 55654c5 d33294b |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# This file is part of OpenCV Zoo project.
# It is subject to the license terms in the LICENSE file found in the same directory.
#
# Copyright (C) 2021, Shenzhen Institute of Artificial Intelligence and Robotics for Society, all rights reserved.
# Third party copyrights are property of their respective owners.
import collections
import numpy as numpy
import cv2 as cv
class Compose:
def __init__(self, transforms=[]):
self.transforms = transforms
def __call__(self, img):
for t in self.transforms:
img = t(img)
return img
class Resize:
def __init__(self, size, interpolation=cv.INTER_LINEAR):
self.size = size
self.interpolation = interpolation
def __call__(self, img):
return cv.resize(img, self.size)
class CenterCrop:
def __init__(self, size):
self.size = size # w, h
def __call__(self, img):
h, w, _ = img.shape
ws = int(w / 2 - self.size[0] / 2)
hs = int(h / 2 - self.size[1] / 2)
return img[hs:hs+self.size[1], ws:ws+self.size[0], :]
class Normalize:
def __init__(self, mean=None, std=None):
self.mean = mean
self.std = std
def __call__(self, img):
img = img.astype("float32")
if self.mean is not None:
img[:, :, 0] = img[:, :, 0] - self.mean[0]
img[:, :, 1] = img[:, :, 1] - self.mean[1]
img[:, :, 2] = img[:, :, 2] - self.mean[2]
if self.std is not None:
img[:, :, 0] = img[:, :, 0] / self.std[0]
img[:, :, 1] = img[:, :, 1] / self.std[1]
img[:, :, 2] = img[:, :, 2] / self.std[2]
return img
class ColorConvert:
def __init__(self, ctype):
self.ctype = ctype
def __call__(self, img):
return cv.cvtColor(img, self.ctype)
|