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

  • 2 weeks later...

Hi Nanno,


Regarding my application, I am developing an automated system to detect features (such as lines) in the images and programmatically generate surface curves by creating equidistant points along those features.
Thank you for the guidance and resources. I will test this workflow and see how it works for my case. I appreciate your help!

Edited
Link to comment
Share on other sites

Also, I noticed that the create_surface_curve command seems to produce a result by clicking on just a single image in the interactive window.
Does this approach rely on different logic compared you mentioned?

Edited
Link to comment
Share on other sites

 Share

×
×
  • Create New...