Various wheels

1: same ratio scaling

Sometimes resizing directly will cause deformation, so I thought of this method, scale it in the same proportion, and then add 0. PIL is used in torchvision. Opencv is required during inference.

def ZeroPaddingResizeCV(img, size=(224, 224), interpolation=None):
    isize = img.shape
    ih, iw = isize[0], isize[1]
    h, w = size[0], size[1]
    scale = min(w / iw, h / ih)
    new_w = int(iw * scale + 0.5)
    new_h = int(ih * scale + 0.5)
 
    img = cv2.resize(img, (new_w, new_h), interpolation)
    new_img = np.zeros((h, w, 3), np.uint8)
    new_img[(h-new_h)//2:(h+new_h)//2, (w-new_w)//2:(w+new_w)//2] = img
 
    return new_img
  
new_image=ZeroPaddingResizeCV(img,(96,96))

2。log

import logging
def getLogger(log_path):
    logger = logging.getLogger()
    logger.setLevel(logging.INFO)  # Log等级总开关
    formatter = logging.Formatter(fmt="[%(asctime)s|%(filename)s|%(levelname)s] %(message)s",
                                  datefmt="%a %b %d %H:%M:%S %Y")
    # StreamHandler
    sHandler = logging.StreamHandler()
    sHandler.setFormatter(formatter)
    logger.addHandler(sHandler)
    fHandler = logging.FileHandler(log_path, mode='w')
    fHandler.setLevel(logging.DEBUG)  # 输出到file的log等级的开关
    fHandler.setFormatter(formatter)  # 定义handler的输出格式
    logger.addHandler(fHandler)  # 将logger添加到handler里面
    return logger

Guess you like

Origin blog.csdn.net/jiafeier_555/article/details/132544566