Рассмотрим (типичный) случай, когда нелинейное искажение линзы в основном имеет бочкообразный характер. Это означает, что пиксели около, скажем, верхней левой части изображения соответствуют световым лучам дальше от фокальной оси, чем они были бы, если бы не было искажения: это как если бы у края изображения камера поле зрения больше, и этот эффект тем сильнее, чем дальше пиксель находится от центра изображения (ну, основной точки). Фактически, поле зрения больше в углах изображения и меньше в центре сторон изображения. Когда вы деформируете изображение, чтобы удалить искажение, используя откалиброванные параметры, вам нужно решить, что делать с этой «лишней» областью изображения. Ваш выбор:
- Вы можете оставить его себе. Это означает, что искаженное изображение должно иметь большую площадь, чем исходное, чтобы у краев было «дополнительное» поле зрения. Но поскольку в углах было больше света, чем ближе к центрам сторон, вам нужно заполнить недостающие пиксели, скажем, черным. В результате получается деформированное изображение в форме «бабочки».
- Вы можете выбросить его, оставив только прямоугольник внутри деформированного изображения, все пиксели которого действительны (т.е. они соответствуют пикселю в исходном изображении). образ). Фактически, вы обрезаете крылышки бабочки.
- Некоторые можно оставить и выбросить.
Эта функция в OpenCv позволяет вам сделать выбор (через ее «альфа») аргумент), и возвращает матрицу камеры-обскуры, которая соответствует искаженному изображению, соответствующему вашему выбору.