Forum

Author Topic: Merge markers after detection!!  (Read 3025 times)

williamgomes

  • Newbie
  • *
  • Posts: 3
    • View Profile
Merge markers after detection!!
« on: December 17, 2018, 05:59:49 PM »
Hello !

Would it be possible to merge markers after they've been detected ?

i.e. Does it exist something to create a marker that gather the projections of two (or more) markers that have been automatically detected ?

Indeed, after non-coded target detection (circle), I got several markers really close to each other (less than a centimeter) coming from the detection of an unique object. And at this point I don't know how to gather all the projections into a single marker.
thegadgetwire.com/kodi/ thegadgetwire.com/tutuapp/ thegadgetwire.com/appvalley/
« Last Edit: December 17, 2018, 11:01:24 PM by williamgomes »

Alexey Pasumansky

  • Agisoft Technical Support
  • Hero Member
  • *****
  • Posts: 14813
    • View Profile
Re: Merge markers after detection!!
« Reply #1 on: December 17, 2018, 07:00:56 PM »
Hello williamgomes,

Please try this script, it works, however, in semi-manual way - you need to select the markers that you wish to merge at first, then execute the script (from the Custom Menu):
Code: [Select]
import PhotoScan

def merge_selected_markers():

doc = PhotoScan.app.document
chunk = doc.chunk
print("Script started...")
merge_list = list()

for marker in chunk.markers:
if marker.selected:
merge_list.append(marker)
if len(merge_list) < 2:
print("Nothing to merge, script aborted.")
return False
print(str(len(merge_list)) + " markers found.\nMerging projections")

ref_marker = merge_list[0]
projections = dict()
for marker in merge_list:
for camera in list(marker.projections.keys()):
if camera not in projections.keys():
projections[camera] = PhotoScan.Vector([0,0, 0])
x = marker.projections[camera].coord
x.size = 3
x.z = 1
projections[camera] += x
marker.projections[camera] = None
for camera in projections.keys():
if projections[camera].z:
ref_marker.projections[camera] = PhotoScan.Marker.Projection(PhotoScan.Vector([projections[camera].x, projections[camera].y]) * (1 /  projections[camera].z), True)
print("Script finished")
return True

PhotoScan.app.addMenuItem("Custom menu/Merge Selected Markers", merge_selected_markers)
Best regards,
Alexey Pasumansky,
Agisoft LLC

Lumuss

  • Newbie
  • *
  • Posts: 7
  • Lumus is light
    • View Profile
Re: Merge markers after detection!!
« Reply #2 on: April 23, 2021, 08:31:16 AM »
I had Merge Chunks issues. If you select 'merge markers' along with 'merge dense clouds' and 'merge models', it'll bypass a point-by-point alignment and merge markers in your space.
I could pm you my screenshots and explain the workflow, if you're interested.


fast essay
Respectfully,
Lumuss

Alexey Pasumansky

  • Agisoft Technical Support
  • Hero Member
  • *****
  • Posts: 14813
    • View Profile
Re: Merge markers after detection!!
« Reply #3 on: April 24, 2021, 01:30:29 PM »
Hello Lumuss,

You can send the screenshots describing the observed issues to support@agisoft.com.
Best regards,
Alexey Pasumansky,
Agisoft LLC