add a script to compute parameters
This commit is contained in:
		
							
								
								
									
										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))
 | 
				
			||||||
		Reference in New Issue
	
	Block a user