Kinect Azure Depth Image - how to normalize?

Can anyone tell me if its possible to normalize the Depth Image so that it becomes more useful?
By default it only shows a proper grey scale for depths in the range of approx .5-3ft.
Instead I need it to map depth values in the range of approx 3ft to 15ft.
If you right click there is a ‘Normalize Split’ view option but this doesn’t change the actual output AFAIK.

Oh I see what you’re trying to do. The reason you’re only seeing that limited range is that the depth image is coming in as a 32bit image AKA the color values are actually able to go above 1.0 and below 0.0 into the negatives, even though you can’t see those colors.

When you’re messing with TOPs in TouchDesigner, most can properly deal with 32bit data behind the scenes, but because all computer monitors and operating systems only work with displaying 8bit color, you won’t really see the full range even though it is there. This is specifically useful for things like this, where the TOP is representing data and not just colors, giving you MUCH more dynamic range to mess with said data while on the GPU which is much faster at doing parallel type operations on data.

For what you’re trying to do, all you need (I believe) is the Limit TOP, which has a normalize option at the bottom of the first tab. Though you may be able to do the stuff you are actually trying to accomplish still in 32bit to take advantage of the extra dynamic range.
image

If you middle mouse click on any TOP (or click the i in the upper left of the parameter panel) you can see what format the TOP is in, EG 8bit, 16bit or 32bit.
image

Just be aware that some TOPs can not handle 32bit, and some also have a “Clamp Input to [0-1]” toggle on them. I think there’s a list somewhere of TOPs that can and can’t be used with 32bit, but I’m not sure. Definitely read this about Pixel Formats in TD though:

https://derivative.ca/UserGuide/Pixel_Formats

2 Likes

Hello, instead of limit, I prefer to use the Math Top, Range page.
If you want to make visible the range 1-2m (sorry, I doesnt use imperial mesures), use:
From Range 1-2
To Range 0-1
But the question is why you need the visibility of the depth, you can use the information with different tools, as treshold to make a mask, without changing the range.

2 Likes

Thanks. Very useful!

Problem I get with Limit TOP and Normalize enabled is a ‘strobing’ effect. Then I need to enable Clamping on Limit Type maximum.