Jump to content
Compvision.ru
Sign in to follow this  
mrgloom

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

Recommended Posts

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

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

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

Share this post


Link to post
Share on other sites

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

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Д то будет линейное уравнение?

Share this post


Link to post
Share on other sites

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

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

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

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

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

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

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

all_before.png

all_after.png

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

http://pastebin.com/hXbUtLyA

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

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

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

Share this post


Link to post
Share on other sites

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

5_points.PNG

5_points_affine_marked.png

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

Share this post


Link to post
Share on other sites

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

all_after.png

Share this post


Link to post
Share on other sites

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

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

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

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

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

вот нашел про автокалибровку в 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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×