Open Source Computer Vision Library https://opencv.org/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

28 lines
757 B

import numpy as np
class MegapixScaler:
def __init__(self, megapix):
self.megapix = megapix
self.is_scale_set = False
self.scale = None
def set_scale_by_img_size(self, img_size):
self.set_scale(
self.get_scale_by_resolution(img_size[0] * img_size[1])
)
def set_scale(self, scale):
self.scale = scale
self.is_scale_set = True
def get_scale_by_resolution(self, resolution):
if self.megapix > 0:
return np.sqrt(self.megapix * 1e6 / resolution)
return 1.0
def get_scaled_img_size(self, img_size):
width = int(round(img_size[0] * self.scale))
height = int(round(img_size[1] * self.scale))
return (width, height)