Interpolation Of Data Stored As An Array (Virtual Sandbox Project)

Hi guys,

So a while back I watched a video of an interactive sandbox, using a kinect and a projector it rendered a topographical overlay onto the sand. I decided this was pretty damn cool and I wanted to make my own version of this device!

My Inspiration:

and so far my progress has been shockingly quick. I have created a program witch renders a 640x480px texture every one second onto a plane under a 2d camera. Its pretty cool and has the basic features necessary to display (almost) the raw kinect depth data:


(My oscilloscope and TV sitting on my work desk)

From here however I am a little lost, my image processing flow should look like this in the end

Capture Depth Array From Sensor
V
Convert Depth Array into 2d Array for manipulation
V
Clean up missing data (black sections of the image)
V
Draw topographical lines
V
Apply texture

So far I have steps 1 and 2 done well. I am very happy with my raw data output however it is rather unsightly once applied to the texture. At this point I need to start working on the code to clean up the image and fill in the missing data. I am not even sure IN THE SLIGHTEST how to go about doing this. Are there any helpful libraries for cleaning up/interpolating/polishing the data before I write it to a texture? How would I render topographical lines on this data? At this point i have a foundation but I need all the help I can get!

Thanks so much for your help guys!

You probably want to run over the data with some sort of blurring function (Gaussian?) to smooth out the data points:

Hey,

Okay so I put in a blur effect, Gaussian isn’t harsh enough to smooth out large areas of bad data however i do like the effect of another blur algorithm I found. It still doesn’t fill missing data but it gives a less rough output:
2242911--149720--Blur.jpg
Of course testing with a sandbox will be the definitive factor.