Line orientation in 3D from centroid and Euler angles
5 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
matnewbie
el 19 de Jun. de 2018
Comentada: Saurabh Patel
el 20 de Sept. de 2018
I used the regionprops3 function to detect centroid and Euler angles of cylinders of the same size in 3D space. Now I want to obtain the 3D coordinates of a line (of given length, representing the axis of the cylinders) passing through the centroid and oriented according to the three Euler angles. What kind of coordinate transformation should I consider?
0 comentarios
Respuesta aceptada
Matt J
el 19 de Jun. de 2018
Editada: Matt J
el 19 de Jun. de 2018
I think you'd be better off using regionprops3 to extract the Eigenvalues and Eigenvectors properties of the cylinders, instead of the Orientation property (which I assume you are using now). The eigenvector corresponding to the largest eigenvalue should give you the direction vector of the long axis of the cylinder directly.
5 comentarios
Matt J
el 19 de Jun. de 2018
Editada: Matt J
el 19 de Jun. de 2018
Well, as I said, the eigenvector corresponding to the largest eigenvalue is the direction vector. So, you have it already from
regionprops3(yourImage, 'Centroid','EigenVectors','EigenValues')
One thing to note. I believe the EigenVectors are the rows of the matrix given in the output of regionprops3, not the columns.
Saurabh Patel
el 20 de Sept. de 2018
I think eigenvectors are still the columns of eigenvector matrix but they are in image coordinates i.e. (row,col,page) and not in (x,y,z).
For (x,y,z) space, I think we need to represent it as {eigenvector(2,1), eigenvector(1,1), eigenvector(3,1)} for the major principal direction.
Más respuestas (0)
Ver también
Categorías
Más información sobre Linear Algebra en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!