Is there a reason whyt denoise algorithm don't work on 32bit floatting point image


I’m looking for an algorithm for image denoising. Checking the documentation I found: OpenCV: Denoising

The problem is that none of these functions take a 32bit floatting point images. Is there a reason why? Ca I find other denoise function that can use 32b images?



if there’s a reason, I’d speculate that nobody bothered to implement these algorithms for more than the “usual” 8 bit case. I’m sure most of these algorithms work on any type of number, if implemented. it’s all optimized code so translating it to float32 would involve a few different “intrinsic” operations for that data type.

I’m working on astronomy images. So 8bit is really not enough. Same for 16bit.

Thanks for explanation.

if you like one algorithm in particular, you could request a float32 implementation as an issue on github. maybe someone will be interested in working on that… if they knew someone wants that.

1 Like

What’s sensor give you a 32 bits resolution?

But stacking 1000 images or more does.

1 Like

What’s depth resolution for one image?

I think you can always use DFT

Generally we already stack 32bits images.
These images come from 16bit depth sensor and there are calibrated in the floatting point precision. Then they are demosaiced in 32bit precision again (if color), aligned and stacked.

What do you think with the DFT? What I can do in the Fourier space?

What do you want to remove from image?

At the end of stacking (that remove a lot of noise). We want to remove remaining noise.
Astronomy images have always a lot of noise, even if you stack several hours of exposure.

Here an example of a proprietary software: PixInsight — Deconvolution and Noise Reduction Example with M81 and M82

can I assume that you do dark-frame subtraction and similar operation with a “flat field”?

Yes. This is the calibration step.

You should try pywavelet in python

OK, I will check.
But all our code is in C/C++ :).

You can use code in Numerical Recipes too

1 Like

Oh yes. Wavelet transform. I already have a implementation of this. But not for denoise purpose.