Jump to content

Automating surface curve creation from pixel coordinates in TRITOP


---
 Share

Recommended Posts

Hi everyone,

I am working with photogrammetry using the TRITOP system.

Currently, when I use the create_surface_curve command, I click on an image in the command interactive window, the software automatically calculates the 3D position on the actual surface.

MCAD_ELEMENT=gom.script.curve.create_surface_curve (
	curve_parts={'markers': [{'index': 0, 'parameters': {'point_trait': {'interpolated': True, 'normal': gom.Vec3d (0.07924362272, 0.03276161849, 0.9963167906), 'point': gom.Vec3d (573.3816922, 47.83301153, 297.8800614), 'target': gom.app.project.actual_elements['actual_master']}, 'type': 'free'}, 'type': 'marker'}, {'index': 1, 'parameters': {'point_trait': {'interpolated': True, 'normal': gom.Vec3d (0.07802926749, 0.01146471221, 0.9968851209), 'point': gom.Vec3d (573.6484574, 25.50336509, 298.3514428), 'target': gom.app.project.actual_elements['actual_master']}, 'type': 'free'}, 'type': 'marker'}, {'index': 2, 'parameters': {'point_trait': {'interpolated': True, 'normal': gom.Vec3d (0.07850114256, 0.004903743044, 0.996901989), 'point': gom.Vec3d (572.0861109, 2.302611895, 298.6641015), 'target': gom.app.project.actual_elements['actual_master']}, 'type': 'free'}, 'type': 'marker'}, {'index': 3, 'parameters': {'point_trait': {'interpolated': True, 'normal': gom.Vec3d (0.07395029813, -0.01712233759, 0.9971149564), 'point': gom.Vec3d (571.1842161, -27.73264642, 298.5560014), 'target': gom.app.project.actual_elements['actual_master']}, 'type': 'free'}, 'type': 'marker'}, {'index': 4, 'parameters': {'point_trait': {'interpolated': True, 'normal': gom.Vec3d (0.07339125872, -0.02370758355, 0.9970213771), 'point': gom.Vec3d (571.5683979, -41.38079059, 298.252247), 'target': gom.app.project.actual_elements['actual_master']}, 'type': 'free'}, 'type': 'marker'}], 'pathes': [{'parameters': {'sequence': [{'index': 0, 'type': 'marker'}, {'type': 'segment'}, {'index': 1, 'type': 'marker'}, {'type': 'segment'}, {'index': 2, 'type': 'marker'}, {'type': 'segment'}, {'index': 3, 'type': 'marker'}, {'type': 'segment'}, {'index': 4, 'type': 'marker'}], 'type': 'spline'}, 'type': 'path'}], 'projection_mode': 'smooth'}, 
	name='曲线 4', 
	target=gom.app.project.actual_elements['actual_master'])

My goal is to take a list of pixels, compute their corresponding 3D positions, and pass them into the create_surface_curve if that possible.

I look forward to hearing from you and thank you in advance for your time and assistance.

Sean Tsai

Link to comment
Share on other sites

Hi Sean,

for photogrammetry, there is a build in function to create points from image: ZEISS Quality Tech Guide

The homologous point needs to be clicked at least in two images to create an element. This point could be used for the construction of a curve. Interactively clicking the points -> create curve from these points -> created projected curve (project on mesh) resulted in a surface curve from clicked points in the image mapping of the photogrammetry. This can be recorded in the App editor. 

For ATOS measurements we have an example in the documentation zeiss-inspect-app-examples/AppExamples/misc/PointPixelTransformations/doc/Documentation.md at main · ZEISS/zeiss-inspect-app-examples · GitHub to get points from pixels and vice versa.

Maybe there is also another function available depending on the application behind this, if you want to share it?


Nanno

 

Link to comment
Share on other sites

 Share

×
×
  • Create New...