LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Interpolating Intensity Graph - detect shape

Hi I'm looking for help in this post. 

 

i have a sensor sheet 16X16. i connected it with jumper wires into Arduino and from Arduino through serial USB into LabVIEW. 

 

I'm using serial Read to read the analogue data streaming from this sheet and display it over intensity graph. 

 

i used an NI-Gmath/ bilinear to smooth the pixels a bit. however, i can't detect the shape of the object that i'm placing it over the sheet. 

 

for example the picture attached is my finger placed on the sheet. 

 

 

my question is, how i can interpolate the intensity graph to make it able to detect the shape of the object above those sensors ?

 

i attached my 2016 VI 

 

 

looking for help and thanks in advance 

Download All
0 Kudos
Message 1 of 6
(2,795 Views)

Hi,

 

What sort of method do you want to use? I think that this is a problem that maybe in general can't be solved accurately - you need to make some assumptions about the shape based only on an average pressure over a "large" area.

 

You can consider for example a smaller grid of points (say 64x64 with the same spatial size as your 16x16 grid) and then use varying interpolation methods to map the 16x16 to a higher resolution, but how will you know if the high resolution is a reasonable representation of the real object?

 

To give a concrete example, in your finger picture we can see a narrow rod-like object, with lower pressures around the edge. This makes sense - the middle of your finger presumably pushes down with a higher pressure. However, given the sensors are providing an average pressure over the area of the individual cell in the sensor, you don't know if the shape should be a straight line, some fraction of the way through the cell (i.e. pressure = max inside, and atmospheric outside a line) or a gradient (pressure decreases in one direction) or a series of dots of high, medium and low pressure.

 

I guess with some more information about how the sensor makes a measurement, you can estimate the behaviour of the results in various cases, but I think you're really just left guessing and hoping.

 

The simplest solution is to use linear interpolation and not too much of a change in resolution. I attach a VI that shows a demonstration, but again, beware - there's no guarantee this is an accurate answer. It might just look smoother!


GCentral
Message 2 of 6
(2,746 Views)

hi cbutcher,

 

thanks for replying me. 

 

the idea is just close to spatial resolution technique. whenever i'm placing my finger over the sensor sheet, still gives me the straight line. 

 

i'm looking for something make it more accurate, like detect the shape in details, similar to the attached picture, please have a look. 

 

also I found something in my VI, that wherever I'm placing my object over the sheet, still start from the beginning of Y axis,  assuming i'm placing my finger or the object in the middle of the sheet, my VI detected from the beginning of the Y axis. how can i solve this idea to make it detect the position of the object. 

 

this VI is just a small part of a larger one, and I'm sharing this cause i do have a problem only here. 

 

 

so my Idea in general is increasing the number of the pixels in the intensity graph (instead of being large squares, i can make them smaller to represent more details.) when the object over the sheet then i'll have colour representation about the object similar to a finger or foot .. etc. 

and around that area i believe i should not have anything as there's nothing around. so it will be steady. 

 

 

 

Cheers,

0 Kudos
Message 3 of 6
(2,741 Views)

Hi,

 

You're welcome.


@N.Ghrayeb wrote:

 

the idea is just close to spatial resolution technique. whenever i'm placing my finger over the sensor sheet, still gives me the straight line. 

i'm looking for something make it more accurate, like detect the shape in details, similar to the attached picture, please have a look. 

...

 

so my Idea in general is increasing the number of the pixels in the intensity graph (instead of being large squares, i can make them smaller to represent more details.) when the object over the sheet then i'll have colour representation about the object similar to a finger or foot .. etc. 

I understand what you want. I just don't think that you can create data that doesn't exist. If you measure only 256 points (16x16) then extrapolating more than a little is increasingly unreasonable, but crucially, your picture shows for example inset sections (for example, between the largest toe and the other toes).

 

If you don't have a sensor result there, no amount of interpolation will place a low pressure zone - if the two adjacent pressure zones are high, then any reasonable interpolation will create intermediate points also with a high pressure. You can only really smudge the edges, like you see in my example VI.

 


@N.Ghrayeb wrote:

 

 

also I found something in my VI, that wherever I'm placing my object over the sheet, still start from the beginning of Y axis,  assuming i'm placing my finger or the object in the middle of the sheet, my VI detected from the beginning of the Y axis. how can i solve this idea to make it detect the position of the object. 

 

this VI is just a small part of a larger one, and I'm sharing this cause i do have a problem only here. 

 


 

I'm not sure what you mean by "detected from the beginning of the Y axis". Do you mean it claims that some areas are high pressure when you're not pressing them? If so, I have no idea what the problem might be. I did notice one problem in your VI, that you might still have - you use a constant value 4 in the quotient/remainder function (like in a previous thread as I suggested) but now you have 16x16 cells - previously you had 4x4. If only a small part of the graph is receiving values, and that is the problem you're describing, it's because you need to change the 4 to a 16. If you read the context help (Ctrl-H to open then hover over the QR function and the Replace Array Subset node) it should be possible to see why.

 

If instead you mean something about object detection being done on the processed image, then you'd need to post those VIs too - I have no idea how you're detecting objects.


GCentral
Message 4 of 6
(2,734 Views)

I'm not sure what you mean by "detected from the beginning of the Y axis". Do you mean it claims that some areas are high pressure when you're not pressing them? If so, I have no idea what the problem might be. I did notice one problem in your VI, that you might still have - you use a constant value 4 in the quotient/remainder function (like in a previous thread as I suggested) but now you have 16x16 cells - previously you had 4x4. If only a small part of the graph is receiving values, and that is the problem you're describing, it's because you need to change the 4 to a 16. If you read the context help (Ctrl-H to open then hover over the QR function and the Replace Array Subset node) it should be possible to see why.

 

 

this idea helped me, thanks. 

 

 

I'm going to work on the sensor results to make it happen and i'll keep you updated. 

 

 

 

thanks mate. 

 

 

 

Regards,

Anthony

0 Kudos
Message 5 of 6
(2,730 Views)

If this question is solved, maybe you can mark one (or if needed more) post(s) as a solution so that it is ticked off in the forum list. If not, maybe you can point out which bit isn't working how you want?


GCentral
0 Kudos
Message 6 of 6
(2,714 Views)