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.
27 lines
757 B
27 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)
|
|
|