How to compute the homography

Dear Community,
I have some issue to getting the trasnform image for homography
I want to apply the homography to an image, I do have homography martix from the general formulation
H = R+1/d*n*t'
H = rotation_matrix + t.* Normal
H =
0 -1.0000 0
-0.3420 0 -0.9397
5.9397 5.0000 4.6580
The basic concept of idea is to trying get image from vitrual camera, so the question I that how I can get the image from virtual camera ?
As you can see figure below , I have perspective image but I want to use inverse perspective mapping
Thanking you so much
3D2D.jpg

 Respuesta aceptada

darova
darova el 19 de Abr. de 2019

0 votos

Hi, that green trapezoid is what you want. Can be found as line intersections of plane
mmm.png
But having all those point on a plane (in 3D) dont know how to convert them into 2D (to get that trapezoid in XY):
mm1.png
And how to convert image (pixels position) having that trapezoid?
mm2.png
See attached files

3 comentarios

Sushil  Sharma
Sushil Sharma el 19 de Abr. de 2019
Thank you so much darova for your answer
But having all those point on a plane (in 3D) dont know how to convert them into 2D (to get that trapezoid in XY):
Well, I want to know that how do you convert then into 2D in XY plane, I saw plot and really intresting, actually I need that answer, It will really appricate, if you provide my answer
Thanks once agian
darova
darova el 21 de Abr. de 2019
Create vectors Nx, Ny first:
NX = cross([0 0 1],-NZ); % camera X-axis
NX = NX/norm(NX);
NY = cross(NX, NZ); % camera Y-axis
NY = NY/norm(NY);
Then using dot product convert each point in 2D:
Where, P = (x,y,z) - point on plane
Untitled.png
Sushil  Sharma
Sushil Sharma el 21 de Abr. de 2019
Thank you so much darova for your answer,
I get some idea, now I understand how to deal with situation,
Really apppericate for your help,
I wish in future you will clear my doubt as you did now
Thanks in advance

Iniciar sesión para comentar.

Más respuestas (1)

Matt J
Matt J el 19 de Abr. de 2019
tform = projective2d(H);
newImage = imwarp(oldImage,tform);

2 comentarios

Omar Ali
Omar Ali el 28 de Dic. de 2019
how i can apply it on input image?
Matt J
Matt J el 28 de Dic. de 2019
That's what this line does
newImage = imwarp(oldImage,tform);

Iniciar sesión para comentar.

Etiquetas

Preguntada:

el 18 de Abr. de 2019

Comentada:

el 28 de Dic. de 2019

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by