LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

A question about 3D figure analysis

 Dear all:
I want to analyze a 3D figure. The figure looks like several hills stand on a plain. I want to detect the location of every hill, its altitude and its average altitude(based on the area it occupies) automaticly with LabView. Anyone can sugest how to do it?
Thanks a lot!
0 Kudos
Message 1 of 8
(2,961 Views)
Did I describe the problem clearly? Please help me!
0 Kudos
Message 2 of 8
(2,943 Views)
Here is the attachment of the 3D figure.
0 Kudos
Message 3 of 8
(2,941 Views)

"Did I describe the problem clearly?"

Well, speaking for myself, I am not sure what is the nature of your challenge.

Are you asking us to use the image you provided as input and work form that...

OR

Do you have the data used to produce the graph available and you want to crunch the numbers?

Ben

BTW: I am not sure if I will be able to help with either of those Q's!

Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel
0 Kudos
Message 4 of 8
(2,922 Views)
Dear Ben,
Why I shoud pulling over to the curb? If I did not say the problem clearly, it is my fault. I did not ask you do the actual work. I just wanted to get some help. I will appreciate even if a simple idea or suggestion(for example, tell me which vi can help me to do this). Yes, I have the data used to produce the graph. If you still want to help me, that is good. If not, I still want to thank you for your time.

0 Kudos
Message 5 of 8
(2,898 Views)
Well, the problem can be infinitely complex because you need to decide on thresholds and other metrics to decide what is a peak. What if peaks overlap? What if peaks have very different amplitudes or widths?
 
In your particular case, the problem seems to be quite easy because the peaks are very well seperated in the  "strip" dimension, so you could use the (properly tuned) "Peak Detector" tool on the projection first. Once you have the strip location of the peaks, find its 2D location in the wavelenght dimension, then search in all directions until the values drop below a certain threshold and average all found bins for each peak. (it is probably sufficient to search only in the two main directions, then assume elliptical cross sections.
 
Do you mind attaching a real data file?
Message 6 of 8
(2,893 Views)
Depending on your data (fully seperated "hills" with a close-to-zero baseline) you could simply look for values above a certain threshold and then group them into "blobs".

Summing all of the data points within a single blob and then dividing by the number of data points should give you your average altitude.  The maximum of all data points is your max amplitude.

If you have a model for your data, maybe you should think of modelling the data first and then extracting the data from the model coefficients.....

Just thinking out loud,

Shane
Using LV 6.1 and 8.2.1 on W2k (SP4) and WXP (SP2)
Message 7 of 8
(2,886 Views)

Dear altenbach,

Thanks a lot for your suggestion. My initial data and my labview programs were attached. ‘light intensity-initial data.txt’ is the initial data file from a camera software. ‘light intensity-initial data.xls’ is an excel file converted from ‘light intensity-initial data.txt’. Unfortunately, I have only labview 6.1. If you modify my program with a higher version, I can not read it. But I can try to read it on my friend’s computer.

No matter if you can help me further more, I would like to thank you for your enthusiasm.

I would also like to thank shoneill and all those who ever think about my problem.

Quanzeng

0 Kudos
Message 8 of 8
(2,875 Views)