Re: Image Transforming
От: AndreyFedotov Россия  
Дата: 12.11.03 11:55
Оценка: 1 (1)
Здравствуйте, zinabnm, Вы писали:

Z>Доброго времени суток.

Z>Есть задача коррекции отсканированного изображения (например карты). Суть ее сводится к преобразованию четырехугольника (в общем случае с углами не равными 90гр. и неодинаковыми сторонами,например трапеция) к квадрату. Помогут ли афинные преобразования (тогда можно было бы задействовать GDI+)? Или нужно все делать руками по какому-нить хитрому алгоритму (какому)?
Z>Может кто решал подобную задачу. Спасибо

Да в данном случае можно воспользоваться афинными преобразованиями, но — в пространстве. Смысл таков — трапеция получается при рассмотрении прямоугольника с определённого ракурса. Соотвественно нужно получить матрицу обратного преобразования и прогнать точки через неё. Ондако это будет работать хорошо только при действительно линейном искажении.

В общем случае (для произвольного искажения), определяется вектор-функция искажения D( x, y ), которая показывает смещение точки в зависимости от её местоположения на исходной картинке ( x, y — координаты на исходной картинке), затем решается обратная задача: нахождение исходных координат точки, если известны её координаты на искажённом изображении.
В случае линейного (трапеция, ромб) искажения такая функция тоже будет линейной и задача может быть решена аналитически.

С Уважением, Андрей
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.