вот вам алгоритм..
стены как известно прямоугольные..
перспективные искажения видите? - вот их нужно будет компенсировать..
как?
используя эти самые стены, развернутые обратной стороной друг к другу.
..после это использовать как шаблон, при искажении фото.
выглядит это примерно так
