Использование Matlab, я пытаюсь решить аффинное преобразование из 6 треугольников (см A
и Aprime
) ...Как найти аффинное преобразование между треугольниками?
3 треугольника в A
triangle1: points 1,2,3 of A
triangle2: points 4,5,6 of A
triangle3: points 7,8,9 of A
Где X/Y координаты являются :
A.x = [x1 x2 x3; x4 x5 x6; x7 x8 x9]
и A.y = [y1 y2 y3; y4 y5 y6; y7 y8 y9]
и есть еще 3 треугольника в Aprim
.
triangle5:points 1,2,3 of Aprim
triangle6:points 4,5,6 of Aprim
triangle7:points 7,8,9 of Aprim
Где X/Y координата АПРИТ является:
Aprim.x = [xp1 xp2 xp3; xp4 xp5 xp6; xp7 xp8 xp9]
и Aprim.y = [yp1 yp2 yp3; yp4 yp5 yp6; yp7 yp8 yp9]
Мне нужно найти аффинные преобразования, которые отображают каждый треугольник A
в треугольник Aprim
таким образом:
- t1 - это аффинное преобразование, отображающее треугольник 1 от A до треугольника 1 апреля.
- t2 - это аффинное преобразование, отображающее треугольник2 от А до треугольника2 апреля.
- t3 - это аффинное преобразование, отображающее точки треугольника3 от A до треугольника3 апреля.
Проблема № 1: В моем коде, ТГогт только дать мне аффинное преобразование t3. Я не знаю, как изменить его, чтобы знать аффинное преобразование для t1, t2, t3.
Проблема №2: Моя другая проблема в том, что в tform матрица, какие элементы являются переводом, вращением, масштабированием значений? как найти масштабирование, угол поворота и значения сдвига?
Может кто-нибудь помочь мне скорректировать мой код в формате MATLAB ниже? Как решить t1, t2 и t3?
Мой код:
A.x=[309 367 295;273 268 298;295 367 298];
A.y=[292 259 277;228 253 225;277 259 225];
Aprim.x=[267 211 265;267 261 295;259 261 211];
Aprim.y=[301 222 325;301 270 306;213 112 222];
for i=1:3
A_xprim(1:3,i)= transpose(Aprim.x(i,1:3));
A_yprim(1:3,i)=transpose(Aprim.y(i,1:3));
Ax(1:3,i)= transpose(A.x(i,1:3));
Ay(1:3,i)=transpose(A.y(i,1:3));
tform = maketform('affine',[A_xprim(1:3,i) A_yprim(1:3,i)],[ Ax(1:3,i) Ay(1:3,i)]);
end
У вас есть код попытка, что другие могут быстро проверить для вас? Если вы покажете, что вы пробовали, вы получите более быстрый ответ. –
Я не использую Matlab, поэтому я не могу помочь с кодом. Эта ** [страница руководства] (http://www.mathworks.com/help/images/performing-general-2-d-spatial-transformations.html#f12-33299) ** может помочь вам в этом вопросе преобразования матрицы ... –