MorphoLibJ's Geodesic Distance Map plugin


Hi, I saw your comment above and I was wondering if it is possible to use this plugin in order to measure the distance from the midline to the border (or total thicknes) of multiple points along the mask image. This plugin output is a LUT of the distance and I would like to get a numeric data.
Thanks for your help!
Ofir

Hello @ofirforsht,

The image with the fire LUT contains the distance data, every pixel in that image has an intensity equal to the distance to the midline.

Hi @iarganda,
Thanks a lot for your help!
I understood that the color represent the distance, but how can I extract the numeric measurement of each point? I would like to plot these numbers and create a line/histogram graph of the thickness along the cell layer (the distribution of thickness is more important to me than the average thickness) so I would need an array of points and the measured distance and not the LUT I get as an output.
I guess that I need to convert pixel intensity into distance but I don’t know how to do it and how to arrange them in the right order as they appear in the tissue.
Any idea on how to solve this issue you be very appreciated.
Thanks again,
Ofir

You just need to read the pixel value at each specific coordinate.

You can use the selection tool and the Plot Profile tool to do that. See this example:

From left to right you have the original binary image, its skeleton and the geodesic distance image calculated using the skeleton as marker. If you select the borders of the original image (for example using the Wand (tracing) tool), convert the selection to a line (Edit > Selection > Area to Line) and then plot the profile (Analyze > Plot Profile), you will get the distance of those pixels to the midline.

PS: if you agree, I will make this conversation public in the forum so everybody can benefit from and contribute to the answers.

1 Like

Hi,
Thanks for the fast reply! I really appreciate it.
First of all, its a good idea to make this conversation public.
Second, I tried your method and got in a few problems:

  1. I’m attaching the MorphoLibJ’s Geodesic Distance Map plugin results I got, using the longest shortest path as marker and the mast. I tried doing the same with the tagged skeleton as marker and got the same results - it doesn’t seem to work like your results, with thickness been measured between skeleton branches instead of from longest shortest path to the borders…do you have any idea how to solve this?
  2. Since I couldn’t get thickness from center line, I created a simple example and used MorphoLibJ’s Geodesic Distance Map plugin to get good results like you did (image attached below). After I select the mask borders with wand tool (this is what you meant by the original image right? because I can’t select the results border anyway) and convert area to line I can’t seem to get the results with the plot profile tool - I get “Line or rectangular selection required” error message…where did I go wrong?

    Thanks,
    Ofir

I see. I assume you are interested on having the distance to the midline only. In that case you should the longest shortest path voxels only as marker (you can isolate it by thresholding for example). Another option is to prune the skeleton to remove the small branches using for example this script.

Sorry, my fault, I forgot to mention you have to bring the border selection in the original image to the distance image (which is where you want to plot the profile). You can do that after by selecting the distance image and clicking on Edit > Selection > Restore Selection.

2 Likes

Hi,
Thank a lot! I followed your directions and everything worked out perfectly! was able to get the plot:


I’m trying to figure out 2 last ploblems:

  1. If I manually press the save on the plot it will save the list I opened on the right as a csv, but adding save as only saves the results and not the plot…how can I code save as from the plot? alternatively, is there a way to move the plot results to the results window?
  2. I’m not sure about the meaning of the numbers I get from the plot - there are a lot of NaN on the Y axis and according to the low values in the middle of the plot it doesn’t seem to be in the right order as the cell layer thickness. I would appreciate an explanation to how are the results ordered (what retermines the X axis number) and how do I get the Cell layer thickness in the order it is in the image
    Thank!
    Ofir

If you select the plot window and click on File > Save then the plot will be saved as an image. If you click on the Save… button of the plot window, you will save the data points as .XLS. I’m not sure I understood what you want to do, but these are the only options you have.

If you click on the List button, they results will be shown on a another window.

That is because your selection takes some pixels out of the object and therefore the distance is NaN. You might want to reduce the selection by 1 (using Enlarge with value -1):

What do you mean? The values will show up in an arbitrary order (most probably starting from the most upper left position and then continuing in the line.

Hi,

What I meant is that I want to enter the save as command to a macro that can be implemented on a large amount of images instead of opening each one and saving them one at a time by pressing the save button…Save as in the macro will not save the plot measures but only the results window, how can I code this into my macro?

  1. That is exactly what I’m trying to prevent, since my final goal is to plot the cell layer thickness along the longest shortest path - I need the distance between the path and the ROI border in the right order (e.g left to right)…is there a way to overcome this issue?
  2. does it record the thickness from both sides of the longest shortest path (a mirror image) or just a one? is it possible to know the arbitrary direction of the measurements?
    If I would have answer to both questions I could probably get my final goal by analysis of measurement (for example only keeping the maximum value between two NaN if the measurements are in vertical lines along the image would yield the thickness per each point…)

Thanks again and sorry for asking so many questions, I feel like I’m so close to the results I want and just need a little more help :slight_smile:

Sorry to dredge up an old thread like this. I’m trying to do something similar in order to measure the thickness of a rind from a fruit. Currently we measure a single location and “wing” the measurement. It’s not very accurate and we have a lot of images that we could go back and measure much more accurately using a technique like this.
That said, I’ve replicated the steps above. I get a distance map with the colors, create a selection of the outer rim of the fruit, enlarge (-1) to pull it inside and get an absolute ton of NaNs in the plot values table. 1444 out of 3531 points to be exact. I’m really wanting to get the basic stats of this array (mean, median, SD, min, max) so I can understand more about our fruit, but with so many missing values I’m not sure if I should proceed to do those summary stats.

Original:


distance map using skeleton (yes it’s messy, but I can work on that)

I’m following up here because it’s still relevant. I’ve put together a short IJ1 script that uses the B&W image above.

Open the image and then run the rest of the code. You get the output below in the log window. This should be the value of the pixel touching the line. There are soooo many NaNs output (here represented as a space).

Like OP, I also would really like to know where 1 is and the end of the array is in the image. Does it actually start at the top like mentioned or is it random? Are the values sequential?
This is because I want to evaluate the thickness at the top, bottom, and sides as well as the overall thickness.

Almost there @iarganda.

, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,11.6,11.4, , , , , , , , , , , , , , , , , , , , , , , , , , , , ,11.2,11,10,10, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,11,11, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,16,16, , , , , , ,15,15, , , , , , , , , ,15,15, , , , , , ,15.2,15.4, , , , , , , ,15,15,14,13,12,12,11,10,9,8,7,7, ,6,5,5, , , , , , , , , , , , , ,13,13.2, , , , , , , , , ,15,15, , ,14.2,14.4, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,14,14, , , , , , , , , , , , , , , , , ,14,14, , , , , , , , , , , , , , , , , , , , , , ,16,16, ,15,15, , , , , , , , , , , , , , , ,14,14, , , , , , , ,14.8,15, , , , , , , ,14,14, , , , , , , , , , , , , , , , , , , ,15,15, , , ,14,14.2, , , , , , , , , , , , ,15,15.2, , , , , , , , , , ,17,17,16,16, , , , , , , , , , , , , , , , , , , , , , , , , , ,17,17, , , , , , , , , , ,17,17, , , , , , , , , ,16.2,16.4, , , , , , , , ,17.8,18, , , , , , ,17.6,17.8, , , , , , , , , , , , , , , , , ,19,19.2, , , , , , , , ,19.6,19.8, , , , , , , , ,20.6,20.8, , , , , ,20.8,21, , , , , , ,20,20.2, , , ,19.8,20, , , , , , , , , , , ,20,20, , , , , , , , , , , ,20,20, , , , , , , , ,19.4,19.6, , , , ,20,20, , , , , ,19,19, , , , , , , , , , , , , , , ,20,20.2, ,19.4,19.6, , , , , , ,19.6,19.8, , , , , , ,19.8,20, , , , , , , ,20,20.2, , , ,19.8,20.2, , , , , , , , ,22,22, , , ,21.4,21.6, , ,21,21, ,20,20, , , , , , , , ,20.6,20.8, , ,20,20, , , ,19.6,19.8, , , , , , , ,20.2,20.4, ,19.6,19.8, , , , , , ,19.8,20, , ,19.4,19.6, , , , , , , , ,20.4,20.6, , ,20,20, , , , , ,20.6,20.8,19.8,20, , , , ,19.2,19.4, , , , ,19,19.2, , , , , , ,19.2,19.4, , ,18.8,19, , , ,18.6,19, , ,18.6,19, , , , , ,20.4,20.8, ,20.2,20.4, , ,19.8,20, , ,19.4,19.6, , ,19,19.2, , , , ,19.2,19.4,18.4,18.6, , , ,18.4,18.6, , ,18.2,18.4,17.4,17.6, , , , ,18.2,18.6, ,18,18.2, , , ,18.2,18.4,17.4,17.6, , ,17.6,18.2, ,17.6,18.2, , ,17.6,18.2,17.4,17.6, ,17.4,18, ,17.6,18.2, , ,18.2,18.8, ,18.6,19, ,18.6,19,18.2,18.6, , , ,18.6,19,18.2,18.6, ,18.2,18.6,17.6,18.2, ,17.6,18.2, ,17.6,18.2, ,17.6,18.2,17.4,17.6,16.8,17.4, ,16.8,17.4, ,17.2,17.6, ,17.4, , ,17.6, , ,17.6,18.2,17.4, , ,17.4, , ,17.6,18.2,17.4, , , ,18.2,18.6,17.6, , ,17.6,16.8,17.4,16.4, , ,16.4, , ,16.6,17.2,16.4, , ,16.6, , ,16.8,16,16.6,15.8,16.4,15.6, , ,16.2,16.8,16.2, , ,16.8,17.6,16.8,17.6,16.8, , ,17.6,16.8, , ,17.6,18.2,17.6,16.8,16.2,16.8,16.2,16.8,16.2,15.4, , ,16.2,15.4, , , , ,16.8, , ,17.2,17.8,17,16.2, , ,16.8, , ,17.6,16.8, , ,17.6,18.2,17.6,18.2,17.6,18.2,17.6, , ,18.2,17.6,18.4,17.8,17.2,18, ,18.2,19,18.6,19.4,18.8,19.6,19,18.6,19.4,18.8,19.6,19,19.8,19.6,20.4,19.8,19.6,20.4,19.8,20.8,20.2,19.6,20.4,19.8,20.8,20.4,21.2,20.8,20.4,21.2,20.8,21.8,21.6,21.2,22,21.8,21.2,22,21.8,22.8,22.6,22,23,22.8,22.6,23.4,23,22.8,23.8,23.4,23,24,23.4,23,24,23.4,23,22.6,23.4,23,22.8,23.8,23.6,23.4,24.4,24.2,24,23.8,24.8,24.2,24,25,24.8,24.6,25.6,25.4,25.2,25,24.8,25.8,25.6,25.4,26.4,26.2,26,25.8,26.8,26.6,26.4,26.2,27.2,27,27,26.8,26.6,27.6,27.4,27.2,27,27,26.8,27.8,27.6,27.4,28.4,28.2,28,28,29,28.6,28.4,28.2,29.2,28.6,28.4,28.2,27.8,28.6,28.4,29.4,29.2,28.6,29.6,29.4,29.2,30,29.6,30.6, ,30.8,30.6,31.4,30.8,30.6,31.4,30.8,30.6,31.4,30.8,31.8,31.6,31.4,31.2,30.8,31.8,31.6,32.6,32.4,32.2,31.8,32.8,32.6,33.6,33.4,33.2,33,32.8,33.8,33.6,33.4,34.4,34.2,34,33.8,33.6,33.4,34.4,34.2,35.2,35,34.8,34.6,34.4,34.2,34,33.8,33.6,33.4,33.2,33,33,33,33,33,33,33,33,33,33,32,32.2,32.4,32.6,32.8,33.8,34,34,33,33.2,33.4,33.6,32.6,32.8,33,33.2,32.2,32.4,32.6,32.8,31.8,32,32.2,32.4,32.6,32.8,33,32,32.2,31.2,31.4,31.6,31.8,32,31,31.2,31.4,30.4,30.6,30.8,31,30,30.2,30.4,29.4,29.6,30,30.2,29.2,29.4,28.4,28.6,28.8,29,28,28.2,27.2,27.4,26.4,27,27.6,26.6,26.8,27,27.2,26.2,26.4,25.6,25.8,24.8,25,25.2,24.2,24.6,24.8,23.8,24,23,23.4,24,24.2,23.4,23.8,22.8,23,23.4,22.4,22.6,21.6,21.8,22,21.2,21.8,20.8,21.2,20.4,20.6,19.6,19.8,20.4,19.6,20.2,20.6,19.6,19.8,20.4,19.6,18.6,19,18.2,18.8,19.4,18.6,19.2,18.4,17.6,18.2,18.8,19.4,18.6,19.2,18.4,17.6,18.2,17.6,18.2,19,18.2,19,18.2,19,18.2,19,18.4,19.2,18.6,19.4,18.8,19.6,19,19.8,19.6,20.4,19.6,20.4,19.8,20.6,20,20.8,20,20.6,19.8,20.4,19.6,20.4,19.6,19,19.8,19.2,20,19.4,20.2,19.6,19,19.6,20.4,19.8,19.2,20,19.4,18.8,19.6,20.4,19.6,20.4,19.6,19,19.6,19,19.6,19,19.6,19,18.2,19,18.2,19,18.2,19,18.2,17.6,18.4,17.8,18.6,18,17.4,18.2,17.6,18.6,18,17.4,18.2,17.6,17.2,18,17.4,18.2,17.6,18.6,18,17.4,18.2,17.6,17.4,18.2,17.6,17.4,18.2,17.6,18.6,18.4,18.2,19,18.6,19.6,19,18.6,18.2,19,18.6,19.6,19,19.8,19.6,19.4,20.4,20.2,19.8,19.6,20.4,19.8,20.8,20.4,19.8,20.8,20.2,19.6,20.4,19.8,19.6,19,19.8,19.6,19,19.8,19.4,18.8,18.2,19,19.8,19.4,18.8,18.2,19,18.6,18.2,17.6,18.6,18.4,18.2,19,18.6,18.2,19,18.6,18.4,18.2,17.6,18.6,18.4,18.2,18,17.6,18.6,18.4,18.2,17.6,18.6,18.4,19.4,19,18.6,19.6,19.4,19.2,19,20,19.8,19.6,19.4,19.2,20.2,20,19.8,20.8,20.4,19.8,19.6,19.4,20.4,19.8,20.8,20.6,20.4,19.8,19.6,19.4,19,19.8,19.6,20.6,20.4,19.8,19.6,19.4,19.2,19,20,19.8,19.6,19.4,20.4,20.2,20,20,20,21,20.8,20.6,20.4,19.8,20.8,20.6,20.4,19.8,19.6,20.6,20.4,20.2,19.8,19.6,19.4,19.2,20.2,20,19.8,19.6,19.4,20.4,20.2,20,20,19.8,19.6,19.4,19.2,19,20,19.8,19.6,19.4,20.4,20.2,20,20,19.8,20.8,20.6,20.4,19.8,19.6,19,18.6,18.4,19.4,19.2,19,18.6,18.2,17.6,17.4,18.4,18.2,18,17.8,17.6,17.4,17.2,17,18,18,18,18,18,19,19,18.8,18.6,18.4,18.2,18,18,18,18,18,19,19,19,19,18.8,18.6,18.4,19.4,19.2,19,19,19,19,19,19,19,19,19,20,20,20,20,20,19.8,19.6,20.6,20.4,20.2,20,20,20,20,20,19.8,19.6,19.4,19.2,19,19,20,20,19.8,19.6,19.4,19.2,19,19,19,19,19,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,20.8,20.6,20.4,20.2,20,20,20,20,20,20,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,21.8,21.6,22.6,22.4,22.2,22,22,22,22,22,22,22,22,22,22,22,22,21,21,21,20.8,20.6,20.4,20.2,21.2,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,22.8,22.6,22.4,22.2,22,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,23,23,23,22.8,23.8,23.6,22.6,22.4,22.2,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,22.8,23.8,23.6,23.4,23.2,23,23,23,24,23.8,23.6,23.4,23.2,22.2,22,22,22,22,21.8,22.8,22.6,22.4,22.2,22,22,21.8,21.6,21.4,21.2,21,21,21,21,21,21,22,22,22,22,22,22,23,23,23,23,23,23,23,22.8,22.6,22.4,22.2,22,22,22,22,22,22,22,22,21.8,21.6,21.4,22.4,22.2,22,22,22,22,22,22,22,23,23,23,23,23,23,23,22,22,22,22,22,22,22,22,22,23,23,23,23,23,22.8,22.6,22.4,22.2,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,23,23,23,23,23,24,24,24,24,24,24,24,24,23.8,23.6,23.4,23.2,23,23,23,22.8,22.6,22.4,22.2,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,23,23,23,23,24,24,24,24,24,24,23.8,23.6,23.4,23.2,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,24.8,24.6,24.4,23.4,23.2,23,23,24,24,24,24,25,25,25,25,25,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,25.8,25.6,25.4,25.2,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,26,26,26,26,25.8,25.6,25.4,26.4,26.2,26,26,26,26,26,25.8,25.6,25.2,24.8,24.2,24,23.8,23.6,23.4,23.2,23,22.8,22.6,22.4,22.2,22,21.8,21.6,21.4,21.2,21,21,22,22,22,22,22,22,23,22.8,22.6,21.6,21.4,21.2,21,21,21,21,21,20.8,21.8,21.6,21.4,21.2,21,21,21,21,22,22,22,22,21.8,21.6,22.6,22.4,22.2,22,22,22,22,22,22,22,22,21.8,21.6,21.4,21.2,21,21,21,20.8,20.6,20.4,20.2,20,20,20,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,21.8,21.6,22.6,22.4,22.2,22,22,22,22,22,22,22,22,23,23,23,23,23,22.8,22.6,22.4,22.2,21.2,21,21,21,21,21,21,21,21,21,20.8,21.8,21.6,21.4,21.2,21,21,20,20,20,20,21,21,21,21,21,21,21,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21.2,21.4,21.6,21.8,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22.2,21.2,21.4,21.6,21.8,22.8,23,22,21.8,21.6,21.4,21.2,22.2,22,22,22,21.8,21.6,21.4,21.2,21,21,21,20,20,19,19,19,19,19,19,19,19,19,19,19,19.2,19.4,19.6,19.8,20,20,20,20,20,20,20,20,20,20,20,19,19,19,19,18,18,18,18,18.2,18.4,18.6,18.8,19,18,18,18,18,18,18,18,18,18,18,18,18,18.2,18.4,17.4,17.6,17.8,18,18,18,18.2,18.4,18.6,18.8,19,18,18,18,18,18,18,18.2,17.2,17.4,17.6,17.8,18,18.2,17.2,17.4,17.6,18,18.2,18.4,17.4,17.6,18,18.2,18.4,18.6,19,19.2,19.4,19.6,18.6,18.8,19,19.2,18.2,18.4,18.6,19,19.4,19.6,19.8,20.2,19.2,19.4,19.6,18.6,19,19.2,19.4,19.6,18.6,19,19.2,19.4,19.6,19.8,19,19,19,19.2,19.4,19.6,19.8,18.8,19,19.2,18.2,18.4,18.6,19,19.2,19.4,18.4,18.6,18.8,19,18,18.2,18.4,18.6,17.6,18.2,18.4,18.6,17.6,18,18.2,18.4,17.4,17.6,18.2,18.4,18.6,17.6,18.2,18.6,17.6,18.2,18.6,19,18.2,18.4,18.6,19,19.6,18.6,19,19.4,19.6,18.6,19,19.6,19.8,20.4,19.4,19.6,18.6,19,19.4,18.4,18.6,19,19.4,18.4,18.6,19,19.2,18.2,18.4,18.6,19,18.2,18.4,18.6,19,18.2,18.4,18.6,17.6,18.2,18.4,17.4,17.6,18.2,18.4,17.4,17.6,18.2,17.2,17.4,17.6,18.2,17.4,17.6,18.2,17.4,17.6,18.2,17.2,17.4,17.6,16.8,17.4,17.6,16.8,17.4, , ,16,16.4,16.8,17.4,17.6,18.2,18.6,17.6,18.2,17.4,17.6,18.2,18.6,17.6,18.2,17.4,17.6,18,17,17.2,17.4,16.4,16.8,16,16.6,17.2,16.2,16.4,16.8,17.4,16.4,16.8,16,16.4,15.4,16,16.4,15.4,16,16.4,15.4,16,15.2,15.8,15,15.4,16,16.6,15.8,16.4,15.4,16,15.2,15.8,16.4, ,16,15.2,15.8,16.4,15.6,16.2,15.4,16,16.6,15.8,16.4,15.4,16,15.2,15.8,15,15.4,16,15.2,15.4,14.6,15.2,15.4,14.6,15.2,14.4,15,14.2,14.8,14,14.8,14,14.6,15.2,14.4,15,14.2,14.8,14,14.6,15.2,14.4,15,14.2,14.8,14,14.6,13.8,14.4,13.6,14.2,13.4,14,14.6,13.8,14.4,13.6,14.2,13.4,14,13.4,14,13.4,14,13.4,14,13.4,14,13.4,14,13.4,14,13.4,14,13.4,14,13.4,14,13.4,14,13.4,14, ,14,13.4,14,13.4,14,13.4,14,13.4,14.2,13.6, ,13.8,13.2,14.2,13.6,14.4,13.8, ,14,13.4,14.2,13.6,14.4,13.8,14.6,14,14.8,14.2, ,14.4,13.8,14.6,14.2, , , ,13.2,14,13.4,14.2,13.6,14.4,13.8, , ,13.6, , ,13.2,14.2,13.6,14.4,13.8,14.6,14.2, , , , ,13.8,14.6,14.2,15.2,14.6, , ,14.4, , ,14, , , ,13, , ,13, , ,13,14,13.8, , , ,14, , ,14.6, , , ,14.8, , , ,15.2, , ,15.8, , , , , ,16, , ,15.8, , , ,15.2, , , , ,13.8, , ,14, , , , , ,13.2, , ,13.8, , , , , , ,13, , , , , ,13, , , , , , , , , , ,12.2, , , , , ,13

open(); // open B&W PNG file

run("8-bit");

// duplicate out parts for rind thickness
run("Duplicate...", "title=ring");
run("Duplicate...", "title=edge");
run("Duplicate...", "title=skeleton_rind");

selectWindow("skeleton_rind");

run("Gaussian Blur...", "sigma=5");
setThreshold(0, 128);
run("Convert to Mask");

invertedLUT = is("Inverting LUT");
if (invertedLUT == 1) {
	run("Invert LUT");
	run("Invert");
}

run("Invert");
run("Skeletonize (2D/3D)");

selectWindow("ring");
run("Invert");

run("Geodesic Distance Map", "marker=skeleton_rind mask=ring distances=[Chessknight (5,7,11)] output=[32 bits] normalize");

//the color represents how far the pixel is from the skeleton line in pixels
// we can convert this to cm easily using the scale data

selectWindow("edge");
run("Select None");
setForegroundColor(0, 0, 0);
run("Fill Holes");
run("Create Selection");
run("Enlarge...", "enlarge=-1");

selectWindow("ring-geoddist");
run("Restore Selection");

sel_type = selectionType(); // get selection type 9 = composite -1 = none
print(sel_type);
rind_thick = ""; //
first_value = 0;


if (sel_type != 9) { //skipping bad selection types
	run("Area to Line"); //convert selection to a line
	profile = getProfile(); // get values along this line, starting at top we think
			
	for (q=0; q<profile.length; q++) {
		if (first_value==0){
			if (isNaN(profile[q])) { //if it's NaN, then it's blank. 
				rind_thick = rind_thick + " "; //first one doesn't need a comma
				first_value = 1;
			} else {
				rind_thick = rind_thick + profile[q]; //first one doesn't need a comma
				first_value = 1;
			}
		} else {
			if (isNaN(profile[q])) { //if it's NaN, then it's blank. 
				rind_thick = rind_thick + "," + " "; // add a value and a comma

			} else {
				rind_thick = rind_thick + "," + profile[q]; // add a value and a comma
			}
		}
	}
}

selectWindow("edge");
run("Close");
selectWindow("ring");
run("Close");
selectWindow("skeleton_rind");
run("Close");
selectWindow("ring-geoddist");
run("Close");

print(rind_thick);

Dear @Brandon_Hurr,

Sorry for the late answer.

I modified your code a bit (basically only the order of some inversions) and it seems to work for me:

//open(); // open B&W PNG file

run("Invert");

// duplicate out parts for rind thickness
run("Duplicate...", "title=ring");
run("Duplicate...", "title=edge");
run("Duplicate...", "title=skeleton_rind");

selectWindow("skeleton_rind");

run("Gaussian Blur...", "sigma=5");
setThreshold(0, 128);
run("Convert to Mask");

invertedLUT = is("Inverting LUT");
if (invertedLUT == 1) {
	run("Invert LUT");
	run("Invert");
}

run("Invert");
run("Skeletonize (2D/3D)");

selectWindow("ring");


run("Geodesic Distance Map", "marker=skeleton_rind mask=ring distances=[Chessknight (5,7,11)] output=[32 bits] normalize");

//the color represents how far the pixel is from the skeleton line in pixels
// we can convert this to cm easily using the scale data

selectWindow("edge");
run("Select None");
setForegroundColor(0, 0, 0);
run("Fill Holes");
run("Create Selection");
run("Enlarge...", "enlarge=-1");

selectWindow("ring-geoddist");
run("Restore Selection");

sel_type = selectionType(); // get selection type 9 = composite -1 = none
print(sel_type);
rind_thick = ""; //
first_value = 0;


if (sel_type != 9) { //skipping bad selection types
	run("Area to Line"); //convert selection to a line
	profile = getProfile(); // get values along this line, starting at top we think
			
	for (q=0; q<profile.length; q++) {
		if (first_value==0){
			if (isNaN(profile[q])) { //if it's NaN, then it's blank. 
				rind_thick = rind_thick + " "; //first one doesn't need a comma
				first_value = 1;
			} else {
				rind_thick = rind_thick + profile[q]; //first one doesn't need a comma
				first_value = 1;
			}
		} else {
			if (isNaN(profile[q])) { //if it's NaN, then it's blank. 
				rind_thick = rind_thick + "," + " "; // add a value and a comma

			} else {
				rind_thick = rind_thick + "," + profile[q]; // add a value and a comma
			}
		}
	}
}

close("edge");
close("ring");
close("skeleton_rind");
close("ring-geoddist");

print(rind_thick);

Thanks for looking. My issue isn’t getting the script to output values, but to get it to not have so many NaN values. When I zoom in on the selection, there are rarely any empty pixels touching the line.

I had to edit your script to get it to work on my machine as well, but it was only really moving run(“Invert”); from one part to another. Sadly, the output still has a significant portion of NaN values.

The values are nearly identical to the above array so I won’t paste it to save space. Below is the edited script with your changes and mine to get it working on my machine.

Is this a Plot_Profile issue? If there are maybe 3 or 4 blank pixels, why are there so many NaN in the profile?

open(); // open B&W PNG file
run("8-bit");
run("Invert");

// duplicate out parts for rind thickness
run("Duplicate...", "title=ring");
run("Duplicate...", "title=edge");
run("Duplicate...", "title=skeleton_rind");

selectWindow("skeleton_rind");

// blur the edges a bit to have a clean skeleton
run("Gaussian Blur...", "sigma=5");
setThreshold(0, 128);
run("Convert to Mask");

// get rid of inverted LUT
invertedLUT = is("Inverting LUT");
if (invertedLUT == 1) {
	run("Invert LUT");
	run("Invert");
}


run("Skeletonize (2D/3D)");

selectWindow("ring");


run("Geodesic Distance Map", "marker=skeleton_rind mask=ring distances=[Chessknight (5,7,11)] output=[32 bits] normalize");

//the color represents how far the pixel is from the skeleton line in pixels
// we can convert this to cm easily using the scale data
// create the selection one step inward from fruit outer wall
selectWindow("edge");
run("Invert"); // need to invert here to get this to work
run("Select None");
setForegroundColor(0, 0, 0);
run("Fill Holes");
run("Create Selection");
run("Enlarge...", "enlarge=-1");

selectWindow("ring-geoddist");
run("Restore Selection");

sel_type = selectionType(); // get selection type 9 = composite -1 = none, want 4
print(sel_type);
rind_thick = ""; //
first_value = 0;


if (sel_type != 9) { //skipping bad selection types
	run("Area to Line"); //convert selection to a line
	profile = getProfile(); // get values along this line, starting at top we think
			
	for (q=0; q<profile.length; q++) {
		if (first_value==0){
			if (isNaN(profile[q])) { //if it's NaN, then it's blank. 
				rind_thick = rind_thick + " "; //first one doesn't need a comma
				first_value = 1;
			} else {
				rind_thick = rind_thick + profile[q]; //first one doesn't need a comma
				first_value = 1;
			}
		} else {
			if (isNaN(profile[q])) { //if it's NaN, then it's blank. 
				rind_thick = rind_thick + "," + " "; // add a value and a comma

			} else {
				rind_thick = rind_thick + "," + profile[q]; // add a value and a comma
			}
		}
	}
}

close("edge");
close("ring");
close("skeleton_rind");
close("ring-geoddist");

print(rind_thick);

In fact, when I get the points, loop through them and get the point values nothing is NaN.

getSelectionCoordinates(xpoints, ypoints);
v_length = xpoints.length

values = newArray(v_length);

for (e=0; e < v_length; e++){
	values[e] = getPixel(xpoints[e], ypoints[e]);
}

Array.print(values);

//13, 12, 13.8000, 12.8000, 14.2000, 13.2000, 13.8000, 12.8000, 13.8000, 12.8000, 13, 12, 13, 12, 12.8000, 11.8000, 13, 12, 13, 12, 12.8000, 11.8000, 13, 12, 12.8000, 11.8000, 12.4000, 11.6000, 12, 11, 11.8000, 10.8000, 11, 10.2000, 11.6000, 10.6000, 11, 10.2000, 10.8000, 9.8000, 10.8000, 9.8000, 10.8000, 9.8000, 11, 10.2000, 10.8000, 9.8000, 10.8000, 10, 11, 10.2000, 11.4000, 10.6000, 11.2000, 10.6000, 11.2000, 10.6000, 12, 11.2000, 13.4000, 12.6000, 13.4000, 12, 12.6000, 12, 13.6000, 13, 15.4000, 15, 15.8000, 15.2000, 16.8000, 16.4000, 18.2000, 17.6000, 18.6000, 18.2000, 18.6000, 17.6000, 18.2000, 17.4000, 18, 17.2000, 17.4000, 16.4000, 17.6000, 16.8000, 17.4000, 16.6000, 17.2000, 16.4000, 17, 16.2000, 16.8000, 16, 16.6000, 15.8000, 17, 15.4000, 16.8000, 16.2000, 16.8000, 16, 17.2000, 16.4000, 17, 16.2000, 16.8000, 16.2000, 16.8000, 15.2000, 16, 15.2000, 15.8000, 15, 15.6000, 14.8000, 15.4000, 14.8000, 15.4000, 14.8000, 15.4000, 14.8000, 15.4000, 14.8000, 15.4000, 14.8000, 15.4000, 14.8000, 15.4000, 14.8000, 15.4000, 14.8000, 15.4000, 14.8000, 15.4000, 14.8000, 15.4000, 14.8000, 15.4000, 14, 14.8000, 14, 14.8000, 14, 14.8000, 14, 14.8000, 14, 14.8000, 14, 14.8000, 14, 14.8000, 14, 14.8000, 14, 14.8000, 14, 14.8000, 13.4000, 14, 12.6000, 13.4000, 12.8000, 13.6000, 13, 13.8000, 13.2000, 14, 12.8000, 13.6000, 13, 13.8000, 13.2000, 14, 13.4000, 14, 12.6000, 13.4000, 12.6000, 13.4000, 12.6000, 13.4000, 12, 12.6000, 11.4000, 12.2000, 11.6000, 12.4000, 11.4000, 12.2000, 11, 12, 11.4000, 12.2000, 11.6000, 12.4000, 11.4000, 12.2000, 11.6000, 12.4000, 11.4000, 12.2000, 11.6000, 12.4000, 11.4000, 12.2000, 11.6000, 12.4000, 11.6000, 12.4000, 11.2000, 12, 10.6000, 11.4000, 10.8000, 11.6000, 10.6000, 11.4000, 10.8000, 11.6000, 10, 10.8000, 10.2000, 11, 9.8000, 10.8000, 9.8000, 10.8000, 9.8000, 10.8000, 8.8000, 9.8000, 9.4000, 11, 10, 10.8000, 9.8000, 10.6000, 9.2000, 10, 9.4000, 10.2000, 8.8000, 9.8000, 9.4000, 10.2000, 9.4000, 10.2000, 9.8000, 10.8000, 9.8000, 10.8000, 10.4000, 11.4000, 10.8000, 11.8000, 10.8000, 11.8000, 11, 12, 11, 12, 11.8000, 12.8000, 12, 13, 11.6000, 12.4000, 12, 13, 11.6000, 12.4000, 12, 13, 11.6000, 12.4000, 11, 12, 10.8000, 11.6000, 10.8000, 11.8000, 10.8000, 11.6000, 10.8000, 11.8000, 10.2000, 11, 10.6000, 11.6000, 10.4000, 11.4000, 10.6000, 11.6000, 10.8000, 11.8000, 10.4000, 11.4000, 11, 12, 11.6000, 12.6000, 11.6000, 12.6000, 11.6000, 12.4000, 11.6000, 12.6000, 11.4000, 12.4000, 11.6000, 12.4000, 10.8000, 11.8000, 10.8000, 11.8000, 10.8000, 11.8000, 10.8000, 11.8000, 10.8000, 11.8000, 10.8000, 11.8000, 10.6000, 11.6000, 11, 12, 11.6000, 12.6000, 12, 13, 13, 14, 11, 12, 12, 13, 12.8000, 11.8000, 11, 12, 11, 12, 12, 13, 12.4000, 11.4000, 11.2000, 10.2000, 10, 11, 10.4000, 11.4000, 11, 12, 11, 12, 12.4000, 11.4000, 11, 12, 13, 14, 14, 15, 17, 16, 16, 15, 16, 15, 16.2000, 15.2000, 16, 15, 15, 12, 12, 7, 7, 5, 5, 6, 6, 7, 7, 8, 8, 13, 13.6000, 15.4000, 15, 16, 16, 15, 15, 14, 15, 14, 15, 14, 17, 16, 16, 15, 15, 14, 14.8000, 15.8000, 16, 15, 15, 14, 16, 15, 15, 14, 16.2000, 15.2000, 15.8000, 16.8000, 18, 17, 17, 16, 18, 17, 18, 17, 17, 16, 16.8000, 17.8000, 18.6000, 17.6000, 18.4000, 17.4000, 20, 19, 20.6000, 19.6000, 21.6000, 20.6000, 21.6000, 20.6000, 21, 20, 20.8000, 19.8000, 21, 20, 21, 20, 20, 19, 19.6000, 20.6000, 20.8000, 19.8000, 20, 19, 21.2000, 20.2000, 20.6000, 19.6000, 20.6000, 19.6000, 20.8000, 19.8000, 21.2000, 20.2000, 21, 20, 22.6000, 21.8000, 22.4000, 21.4000, 22, 21, 21, 20, 20.2000, 21.2000, 21.8000, 20.8000, 21, 20, 20.6000, 19.6000, 21.2000, 20.2000, 20.6000, 19.6000, 20.8000, 19.8000, 20.4000, 19.4000, 20.2000, 21.2000, 21.6000, 20.6000, 21, 20, 20, 21, 21.4000, 20.4000, 20.6000, 19.6000, 20.2000, 19.2000, 20, 19, 20.2000, 19.2000, 19.8000, 19, 19.8000, 19, 19.6000, 18.6000, 21.2000, 20.4000, 21.2000, 20.4000, 21, 20, 20.6000, 19.6000, 20, 19, 20, 19, 19.2000, 18.2000, 19.4000, 18.4000, 19.2000, 18.2000, 18.4000, 17.4000, 19, 18.2000, 18.8000, 17.8000, 18.6000, 17.6000, 18.2000, 17.4000, 18.6000, 17.6000, 18.6000, 17.6000, 19, 18.2000, 18.6000, 17.6000, 18.4000, 17.4000, 18.2000, 17.4000, 19, 18.2000, 19, 18.2000, 19.4000, 18.6000, 19, 18.2000, 19.6000, 18.6000, 19, 18.2000, 19, 18.2000, 18.6000, 17.6000, 18.6000, 17.6000, 18.6000, 17.6000, 18.4000, 17.4000, 17.6000, 16.8000, 17.4000, 16.4000, 17.4000, 16.6000, 17.6000, 16.8000, 18, 17.2000, 18.4000, 17.6000, 18.6000, 17.6000, 18.2000, 17.4000, 18.6000, 17.6000, 18.8000, 18, 18.6000, 17.6000, 19, 18.2000, 18.6000, 17.6000, 18.6000, 16.8000, 17.4000, 16.4000, 17.4000, 16.6000, 17.6000, 16.8000, 17.4000, 16.4000, 17.4000, 16.6000, 17.6000, 16, 16.6000, 15.8000, 16.4000, 15.6000, 16.8000, 16.2000, 16.8000, 16.2000, 17.6000, 16.8000, 17.6000, 16.8000, 17.6000, 16.8000, 18.2000, 16.8000, 18.2000, 17.6000, 18.2000, 16.2000, 16.8000, 16.2000, 16.8000, 15.4000, 16.8000, 15.2000, 17.6000, 16.8000, 18, 17.2000, 17.8000, 16.2000, 17.6000, 16.8000, 18.2000, 16.8000, 18.2000, 17.6000, 18.2000, 17.6000, 18.2000, 17.6000, 18.2000, 17.6000, 19, 17.6000, 18.4000, 17.2000, 18.8000, 18.2000, 19, 18.6000, 19.4000, 18.8000, 19.6000, 18.6000, 19.6000, 19, 19.8000, 19.4000, 20.2000, 19.6000, 20.4000, 19.6000, 20.4000, 19.8000, 20.8000, 19.8000, 20.8000, 20.2000, 21, 20.4000, 21.2000, 20.4000, 21.2000, 20.8000, 21.8000, 21.2000, 22, 21.2000, 22, 21.8000, 22.8000, 22.4000, 23.2000, 22, 23, 22.6000, 23.4000, 22.8000, 23.8000, 23, 24, 22.6000, 23.4000, 22.8000, 23.8000, 23.4000, 24.4000, 23.8000, 24.8000, 24, 25, 24.6000, 25.6000, 24.8000, 25.8000, 25.4000, 26.4000, 25.8000, 26.8000, 26.2000, 27.2000, 26.6000, 27.6000, 27, 28, 27.6000, 28.6000, 28, 29, 28.2000, 29.2000, 27.8000, 28.6000, 28.4000, 29.4000, 28.6000, 29.6000, 28.6000, 29.6000, 29.4000, 30.4000, 30, 30.8000, 30.6000, 31.4000, 30.6000, 31.6000, 30.6000, 31.4000, 30.8000, 31.8000, 30.8000, 31.8000, 31.6000, 32.6000, 32, 33, 32.8000, 33.8000, 32.8000, 33.8000, 33.4000, 34.4000, 33.4000, 34.4000, 34.2000, 35.2000, 33.2000, 32.2000, 33, 34, 34.2000, 33.2000, 33.8000, 32.8000, 33.2000, 32.2000, 32.8000, 31.8000, 33, 32, 32.2000, 31.2000, 32, 31, 31.4000, 30.4000, 31, 30, 30.4000, 29.4000, 30.2000, 29.2000, 29.4000, 28.4000, 29.2000, 28.2000, 28.4000, 27.4000, 27.8000, 27, 27.8000, 26.8000, 27.4000, 26.4000, 26.6000, 25.6000, 25.8000, 24.8000, 25.2000, 24.2000, 24.8000, 23.8000, 24, 23, 24.6000, 23.6000, 23.8000, 22.8000, 23.4000, 22.4000, 22.6000, 21.6000, 22, 21.2000, 21.8000, 21, 21.4000, 20.4000, 20.6000, 19.6000, 20.4000, 19.6000, 20.6000, 19.6000, 20.4000, 18.6000, 19, 18.2000, 19.4000, 18.6000, 19.2000, 17.6000, 19.6000, 19, 19.6000, 18, 18.6000, 17.8000, 19, 18.2000, 19, 18.2000, 19, 18.2000, 19, 18.4000, 19.2000, 18.6000, 19.4000, 18.8000, 19.6000, 19, 19.8000, 19.6000, 20.4000, 19.6000, 20.4000, 19.6000, 20.4000, 19.8000, 20.6000, 20, 20.8000, 20.2000, 21, 20.4000, 21, 19.6000, 20.4000, 19.6000, 20.4000, 19.6000, 20.4000, 19, 20.6000, 19.4000, 20.2000, 19, 20.4000, 19.6000, 20.4000, 19, 19.6000, 19, 19.6000, 19, 19.6000, 18.2000, 19, 18.2000, 19, 18.2000, 19, 17.8000, 18.6000, 18, 18.8000, 17.6000, 18.4000, 17.8000, 18.6000, 17.4000, 18.2000, 17.2000, 18, 17.4000, 18.2000, 17.6000, 18.6000, 17.6000, 18.6000, 17.4000, 18.2000, 17.4000, 18.2000, 17.6000, 18.6000, 18.2000, 19, 18.6000, 19.6000, 18.2000, 19, 18.6000, 19.6000, 19, 19.8000, 19.4000, 20.4000, 19.6000, 20.4000, 19.8000, 20.8000, 19.8000, 20.8000, 19.8000, 20.8000, 19, 19.8000, 19, 19.8000, 18, 19.6000, 18.2000, 19, 17.6000, 18.6000, 18.2000, 19, 18.2000, 19, 17.6000, 18.6000, 17.4000, 18.4000, 17.8000, 18.8000, 18.6000, 19.6000, 19, 19.8000, 19.2000, 20.2000, 19.4000, 20.4000, 19.8000, 20.8000, 19.6000, 20.4000, 19.8000, 20.8000, 19, 19.8000, 19.6000, 20.6000, 19.2000, 20.2000, 19.6000, 20.6000, 20, 21, 19.8000, 20.8000, 19.6000, 20.6000, 19.2000, 20.2000, 19.4000, 20.4000, 19, 20, 19.4000, 20.4000, 19.8000, 20.8000, 18.4000, 19.4000, 17.4000, 18.4000, 17, 18, 18, 19, 18, 19, 18.6000, 19.6000, 19, 20, 19.8000, 20.8000, 19, 20, 19, 20, 20, 21, 20, 21, 21, 22, 22, 23, 22, 21, 20.4000, 21.4000, 21, 22, 22, 23, 22.2000, 23.2000, 23, 24, 24, 23, 23, 24, 23.8000, 22.8000, 22.2000, 23.2000, 22.8000, 23.8000, 23, 24, 23.2000, 22.2000, 21.8000, 22.8000, 21, 22, 22, 23, 21.6000, 22.6000, 22, 23, 23, 22, 22, 23, 22.6000, 23.6000, 23, 24, 24, 23, 23, 24, 22, 23, 23, 24, 24, 23, 23, 24, 23.2000, 24.2000, 24, 25, 24.6000, 23.6000, 23, 24, 24, 25, 25, 26, 25, 26, 25.2000, 26.2000, 21, 22, 22, 23, 22.6000, 21.6000, 21, 22, 21, 22, 22, 23, 20, 21, 21, 22, 21, 22, 22, 23, 22, 21, 21, 22, 21, 20, 20, 21, 21, 20, 20, 21, 22.4000, 21.4000, 22, 23, 22.8000, 21.8000, 21, 22, 21, 20, 20, 19, 20, 19, 19, 18, 19, 18, 18.6000, 17.6000, 18.6000, 17.6000, 18, 17, 18, 17, 18.4000, 17.4000, 19.4000, 18.4000, 19.2000, 18.2000, 20.2000, 19.2000, 19.6000, 18.6000, 19.8000, 19, 20, 19, 19.8000, 18.8000, 19.2000, 18.2000, 19.4000, 18.4000, 19, 18, 18.6000, 17.6000, 18.4000, 17.4000, 18.4000, 17.4000, 18.6000, 17.6000, 18.6000, 17.6000, 18.6000, 17.6000, 19.6000, 18.6000, 19.6000, 18.6000, 20.4000, 19.4000, 19.6000, 18.6000, 19.4000, 18.4000, 19.2000, 18.2000, 19, 18.2000, 19, 18.2000, 19, 18.2000, 18.6000, 17.6000, 18.4000, 17.4000, 18.4000, 17.4000, 18.2000, 17.2000, 18.2000, 17.4000, 18.2000, 17.4000, 18.2000, 17.4000, 18.2000, 17.2000, 17.6000, 16.8000, 17.6000, 16, 18.6000, 17.6000, 18.2000, 17.4000, 18.8000, 18, 18.4000, 17.4000, 18, 17, 17.4000, 16.4000, 16.8000, 16, 17.2000, 16.2000, 17.4000, 16.4000, 16.8000, 16, 16.2000, 15.2000, 16, 15.2000, 16.4000, 15.4000, 16, 15.2000, 15.8000, 15, 16.6000, 15.8000, 16.4000, 15.4000, 16, 15.2000, 17, 15.4000, 16.6000, 15.8000, 16.4000, 15.6000, 16.8000, 16, 16.4000, 15.4000, 16, 15.2000, 15.8000, 15, 16, 15.2000, 15.4000, 14.6000, 15.8000, 15, 15.4000, 14.6000, 15.2000, 14.4000, 15, 14.2000, 14.8000, 14, 15.2000, 14.4000, 15, 14.2000, 14.8000, 14, 15.2000, 14.4000, 15, 14.2000, 14.8000, 14, 14.8000, 14, 14.6000, 13.8000, 14.4000, 13.6000, 14.6000, 13.8000, 14.4000, 13.6000, 14.2000, 13.4000, 14, 13.4000, 14, 13.4000, 14, 13.4000, 14, 13.4000, 14, 13.4000, 14, 13.4000, 14, 13.4000, 14, 13.4000, 14, 13.4000, 14, 13.4000, 14, 13.4000, 14.8000, 13.4000, 14, 13.4000, 14, 13.4000, 14, 13.4000, 14.2000, 13.6000, 14.4000, 13.2000, 14, 13.4000, 14.2000, 13.6000, 14.4000, 13.2000, 14.2000, 13.6000, 14.4000, 13.8000, 14.6000, 14, 14.8000, 14.2000, 15, 13.8000, 14.6000, 14.2000, 15, 13.2000, 14, 13.4000, 14, 13.4000, 14.2000, 13.6000, 14.4000, 13.2000, 14.2000, 13.2000, 14.2000, 13.8000, 14.6000, 14.2000, 15, 14.4000, 15.2000, 13.8000, 14.6000, 14.2000, 15.2000, 14.6000, 15.4000, 14.2000, 15, 13.8000, 14.6000, 13.2000, 14.2000, 13.2000, 14.2000, 13.2000, 14.2000, 13.8000, 14.6000, 13.8000, 14.8000, 14.4000, 15.4000, 14.8000, 15.8000, 15.2000, 16.2000, 16, 17, 16, 16.8000, 15.8000, 16.6000, 15.2000, 16, 14.2000, 15.2000, 14.2000, 15.2000, 13.2000, 14.2000, 13.2000, 14.2000, 12.8000, 13.8000, 13, 14, 12, 13, 13, 14

I suppose this gets me the actual positions within the image so this might have answered my NaN and positional issues.

1 Like