Перейти к содержимому
Compvision.ru
mrgloom

определение дисторсии и преобразования по точкам

Recommended Posts

Можно, надо найти ранг матрицы.

Это и будет количество линейно независимых уравнений.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а если система нелинейная, то такой термин применим?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Думаю что можно попробовать линеаризовать нелинейную систему и найти ранг матрицы.

Линеаризация, это когда небольшой участок кривой в окрестности рассматриваемой точки заменяется на кусочек прямой/плоскости/гиперплоскости (обычно касательная).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

http://graphics.cs.cmu.edu/courses/15-463/2008_fall/Papers/proj.pdf

небольшой док на тему перспективного искажения.

Линеаризация, это когда небольшой участок кривой в окрестности рассматриваемой точки заменяется на кусочек прямой/плоскости/гиперплоскости (обычно касательная).

а как это делается? я так предполагаю не вручную.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

вот тут что то еще про линейность и нелинейность

http://math.stackexchange.com/questions/450/can-non-linear-transformations-be-represented-as-transformation-matrices

но что то я не осилил матан

For example, 3d translation is a non-linear transformation in a 3x3 3d transformation matrix, but is a linear transformation in 3d homogenous co-ordinates using a 4x4 transformation matrix. The same is true of other things like perspective projections.

типа если записать в 3Д то будет линейное уравнение?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Через производную в данной точке.

А производную можно аналитически найти или, что чаще делают через конечные разности.

Допустим есть 2D кривая парабола, y(x)=x^2+x+1 (как пример, все далее подходит для любой плоской кривой); тогда производная в точке k=(y(x+dx)-y(x-dx))/(2*dx); где dx- малое приращение.

Тогда уравнение прямой y=k*x+b, и есть касательная (линеаризация в точке), b - можно найти подстановкой x и y в уравнение прямой.

Для многомерных случаев используют уравнения в частных производных (точнее матрицы Якоби).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Что касается добавления измерений в пространство, то это может помочь представить систему в линейном виде, но это не всегда легко (помните ядра SVM).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ну а если система например y(x)=x^6+1/x+1 ?

тут так просто от степени не избавиться.

я решил попробовать поставить задачу для перспективных искажений без поворота

т.е. я знаю координаты точек u,v после преобразования, а до преобразования x,y не знаю, но знаю что расстояние между точками сохраняется.

пример имею 5 одних и тех же четырехугольников до и после

all_before.png

all_after.png

тут код для математики

http://pastebin.com/hXbUtLyA

и почему то выдает, что нет решений.

как трактовать, что решений нет логически (ближе к физическому миру)? задача поставлено неверно или противоречиво? или не хватает каких то данных?

возможно можно как то дополнительно проанализировать уравнения?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

стало понятно что в случае аффинных преобразований мы не имеет никакой доп. информации т.к. фигуры будут одинаковые.

5_points.PNG

5_points_affine_marked.png

а с перспективными всё таки не ясно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

если продолжить мысль, инетерсно как связаны между собой четырехугольники на результирующей картинке

all_after.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Насчет линеаризации, dy(x)=y(x+dx)-y(x);

Если сделаете подстановку и развернете свою функцию, то там будут dx, и dx в некоторых степенях, больше 1.

Так вот эти слагаемые, содержащие dx в степенях больше 1 нужно убирать (как малые высшего порядка).

И получаете линейную функцию относительно dx, а x Вам известен.

Вот что выдает TILT (красный прямоугольник - мой ввод, зеленый - результат вычислений.):

post-1-0-06876900-1344851102_thumb.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ну там сетка, на реальном изображении я знаю только координаты точек.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

вот возвращаясь к теме о перспективных искажениях, я подумал, если есть изображение и еще снятое с поворотом на 180.

разворачиваем второе на 180 и получаем одинаковые изображения вплоть до искажения, но изначальное искажение мы установить не можем, но например можем посмотреть есть ли тут трапеция и разжать или сузить её.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

вот нашел про автокалибровку в FIJI как раз, то что я тогда и придумал

http://www.kaynig.de/downloads/DistortionCorrectionPlugin_Manual.pdf

http://www.kaynig.de/index.html#software

Fully automatic stitching and distortion correction of transmission electron microscope images

It does not require special calibration samples, but needs sufficient overlapping image areas with preferably high contrast.

похоже это всё входит в пакет TrakEM2

http://www.ini.uzh.ch/~acardona/trakem2.html

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×