colorednoise
colorednoise copied to clipboard
2D colored noise?
Hello there,
First of all thanks for the amazing library. I have a usecase where I need 2D colored noise. I suspect that simply generating a long array and resize it into a 2D matrix is not what I want as the power spectra on the second axis may not be correct. Curious if you have any suggestion on this?
Thanks a lot, Yu
Hi @yxiao1996,
thank you for the interesting question! Sorry it took me so long to answer, I am quite busy ATM and I wanted to look into this case a bit before answering since I never needed it myself.
- You are right that one cannot simple resize the output of the existing 1D function.
- It is possible to modify the algorithm to create even n-dimensional noise with images as a special case.
- I believe I mostly figured it out, maybe you can help me with testing. Is this going in the right direction? https://github.com/felixpatzelt/colorednoise/blob/feat-2d-noise/notebooks/2d-colored-noise.ipynb
Hi Felix, thanks a lot! I will test it.
Thanks for the response.
I have looked into it a bit more and improved some limitations of the prototype. However, I also found a bug that isn't fixed yet: In the 1-d case, the real valued fft is used, which is faster. The rfft2 and rfftn functions of numpy, however, only do the real valued fft over the last dimension and the complex one over the others. Therefore we have to choose the size of the random amplitudes and phases that are generated accordingly. I.e. I believe that we need to generate values for twice as many frequencies but the spectrum will be symmetrical since we want a real output. This stuff is currently not my day-to-day work anymore so I have to do it carefully :)
I am unfortunately unable to work on this for the next three weeks but I would be interested to finish a 2d generator as a library feature in mid to late April.
Feel free to post some updates or to create your own prototype or a PR and share it here, I will look at it as soon as I have time.
Hello! I have somehow stumbled upon the same question of generating pink noise 2d images. Have there been any updates so far?
EDIT: removed the StackOverflow question since it's already been referenced in the ipython notebook above
Hi @man-shu, I didn't hear back anything last year and so I wasn't sure that there is much interest in the feature. I could have another look as I remember it being almost done.
Yes, please! If you have some time...
Did anything came up since then. I am also looking for 2D coloured noise generator. I believe there is an implementation in matlab, but I would of course prefer an implementation in python.