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.
What’s sensor give you a 32 bits resolution?
But stacking 1000 images or more does.
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.
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
Oh yes. Wavelet transform. I already have a implementation of this. But not for denoise purpose.