У меня есть объектив «рыбий глаз» с углом обзора 180° и фокусным расстоянием 8 мм. Я хочу обрезать изображения до круга, определяемого угловым полем зрения от зенитного угла объектива (т. Е. Середина круга на исходном изображении).
Я уже нашел уравнение, которое, я думаю, может быть правильным:
R = 2ƒ sin( θ / 2)
Где θ — угол (в радианах) от зенита, определяющий окружность кадрирования (т. е. мое заданное поле зрения), а ƒ — фокусное расстояние объектива (т. е. 8 мм). R — радиус окружности, очерченной полем зрения (думаю, это радиус на плоскости сенсора?), в мм. Проблема в том, что я не могу понять, как связать R с длиной пикселя на моих изображениях, чтобы я мог обрезать круг такого диаметра.
Я уже просмотрел эти страницы:
Какая связь между полем зрения и фокусным расстоянием для рыбьего глаза?
Ты почти там. Вам просто нужно знать шаг пикселя вашего датчика изображения (обычно в мкм). Если вы не можете найти шаг пикселя датчика, вы можете рассчитать его, разделив ширину (или высоту) датчика на общее количество пикселей датчика по горизонтали (или по вертикали).
Если вы не знаете точный размер сенсора, но знаете его формат (например, 1/2,3 дюйма), имейте в виду, что размеры сенсора в долях дюйма являются номенклатурными, а не размерными . Вы можете найти размеры для всех видов размеров датчиков в Википедии .
Таким образом, учитывая ваше измерение плоскости изображения R (в мм), преобразование в пиксели просто
Пиксели = R * шаг пикселя (в мкм) / (1000 мкм на мм)
Скоттбб
Майкл С