Best Path Help

This widget allows the user to specify two points in 3D. Once they are specified, the best path between them is found and displayed. Only the image in the green channel is analyzed.

note: you MUST use the menu to SAVE the points to a file (see below).

The user moves the crosshair (see the Edit Crosshair widget) to one of the endpoints of the curve and then presses "Save Point 1". Similarly for the second endpoint and "Save Point 2". Then the "Search" button is pressed. Once the search is finished the path will be displayed. "Accept" then adds this path to the list of accepted paths. First it pops up a widget (near the cursor, often UNDER another widget!) asking for the name to give the path. "Reject" does not add this path to the list of accepted paths.

There options which control the search for the best path. Each node has a cost which is (maxval-pixval), and the values are those used inside DAVE (ie, after rescaling 0-255). "rescale" when this is depressed, the values are also rescaled by the brightness slider. "log transform" perform a log transform on image intensities. Not implemented yet. "diag neighbors" allow connections between pixels diagonally next to each other. In 3D, this produces 26 neighbors in total. If not selected, each pixel only has 6 neighbors. 6 neighbors may take less space for the graph search and less time. 6 neighbors may not be as robust in finding a good path. "verbose" prints stuff to stderr "debug" prints even more stuff to stderr

The sliders control which pixels in the image are converted into nodes in the graph. Pixels are excluded based on their intensity and their location (to save space in the graph). "threshold" only pixels (after rescaling if it is pressed) with intensity >= threshold can be in the graph. NOTE: if you set this too high, there may be NO path from the start node to the stop node. I usually keep this at 0 so no pixels are rejected based on threshold. "Axis factor" Pixels within an ellipsoid are allowed to be nodes in the graph. The major axis of the ellipsoid goes (by default) from the start node to the stop node. The other two (identical length) axes are perpendicular to this. This factor allows you to make the major axis bigger (e.g., 1.2 will grow this axis out both ends so that it is 203777653651043540nger). "Perpendicular" this controls the scaling out of the perpendicular axis. This scaling is independent of (i.e. ignores) any axis scale factor.

Menu

This lets the user save the paths found as a "pts" file. This can be read back into DAVE at a later time (it is the format produced by the "planimeter" program and read by the "addlines" program.) Add -n 0 -u to DAVE's options and put the filename.rpts on the end of the command line.

NOTE: the best path is the lowest cost path that goes from the first point to the second point.

NOTE: if it takes too long waiting for the graph search, you can do all this off-line. Use Edit->Crosshairs to add pts to the crosshair stack. Once you have picked say, 5 pts (in order) along a path, choose "clear and save stack to file". repeat for other paths you want to find. Once out of DAVE, use BestPath3D_ellipse to analyze these pts (crosshair2bestpath.pl converts these pts to args for that program). Remember to also use -r to set the correct intensity scaling (to that used when displaying in DAVE). This should be stored in the file. Thresholds for that program may be strictly < rather than <= as here.


Copyright 1995 by Lawrence M. Lifshitz and the University of Massachusetts Medical School. All rights reserved.