add a script to compute parameters
This commit is contained in:
parent
c8a23e2e2c
commit
e560ba8b67
34
compute_gopro_8-7_wide_hypersmooth-off.py
Normal file
34
compute_gopro_8-7_wide_hypersmooth-off.py
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
# RozK
|
||||||
|
# Computes fisheye removal parameters for GoPro 11+, 8:7 ratio, without hypersmooth,
|
||||||
|
# keeping the vertical FOV and widening the frame to preserve the diagonal FOV
|
||||||
|
|
||||||
|
# https://community.gopro.com/s/article/HERO11-Black-Mini-Digital-Lenses-FOV-Information?language=fr
|
||||||
|
|
||||||
|
import math
|
||||||
|
|
||||||
|
frame_width = 8
|
||||||
|
frame_height = 7
|
||||||
|
|
||||||
|
input_vertical_fov = 108.0
|
||||||
|
input_diagonal_fov = 156.0
|
||||||
|
|
||||||
|
input_vertical_length = math.radians(input_vertical_fov * 0.5)
|
||||||
|
input_diagonal_length = math.radians(input_diagonal_fov * 0.5)
|
||||||
|
|
||||||
|
output_horizontal_length = math.sqrt((input_diagonal_length ** 2) / (input_vertical_length ** 2))
|
||||||
|
output_diagonal_length = math.hypot(output_horizontal_length, input_vertical_length)
|
||||||
|
output_diagonal_fov = math.degrees(math.atan(output_diagonal_length)) * 2.0
|
||||||
|
|
||||||
|
output_ratio = output_horizontal_length / input_vertical_length
|
||||||
|
|
||||||
|
print("Output FOV = %f" % output_diagonal_fov)
|
||||||
|
print("Output Ratio = %f" % output_ratio)
|
||||||
|
print("= Resolutions =====================")
|
||||||
|
|
||||||
|
def width_rounded_8(height):
|
||||||
|
width = int(round(height * output_ratio))
|
||||||
|
return ((width + 4) // 8) * 8
|
||||||
|
|
||||||
|
print("HD = %i x 720" % width_rounded_8(720))
|
||||||
|
print("Full HD = %i x 1080" % width_rounded_8(1080))
|
||||||
|
print("4K = %i x 2160" % width_rounded_8(2160))
|
Loading…
x
Reference in New Issue
Block a user