mirror of https://github.com/opencv/opencv.git
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
28 lines
757 B
3 years ago
|
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)
|