matsoljare


« on: March 03, 2013, 10:35:00 PM » 

Most on here are probably knowledgable enough to understand the meaning of convolution  it's what's used to generate blur, sharpening and other types of filters, as well as filtering and EQing in the audio domain.
But the programs i know of doesn't offer much in terms of custom convolution  the ubiqotous "custom filter" function typically only lets you specify a 5x5 grid, or not much more. Technically, a convolution matrix is just an image, so do you know of any programs that let you load an entire high resolution image to be used as a convolution filter?
I'm especially interested in using an image to convolve itself, or a flipped / rotated version, but other combinations will surely be interesting as well!



Logged




eiffie
Guest


« Reply #1 on: March 05, 2013, 07:20:00 PM » 

Sorry I don't know of any programs  the reason probably being convolving a large matrix with another large matrix takes quite a long time without significant optimization. Nobody wants their app to be seen as crashing. The math is simple though.



Logged




cbuchner1


« Reply #2 on: March 05, 2013, 11:53:39 PM » 

I believe a convolution in the spatial domain is the equivalent of a multiplication in the frequency domain.
So, take the FFT of an entire image. Take the FFT of the large convolutional kernel. Multiply both. Transform back and you've got quite an efficient convolution with a big filter kernel.



Logged




kram1032


« Reply #3 on: March 05, 2013, 11:58:45 PM » 

well, you could try to, use Gimp and download a Fourier Transform plugin for it. http://registry.gimp.org/node/9847Technically, a convolution would simply happen by transforming to fourierspace, multiply and transform back. However, this plugin has a caveat: the transformed image isn't shown linearly, thus the multiplication won't be the actual right thing. It's the closest thing I've got besides using something like Mathematica which can do the job too, I guess.



Logged





kram1032


« Reply #5 on: March 06, 2013, 01:32:22 PM » 

Oh, I should have mentioned Octave too. http://www.gnu.org/software/octave/Another option that's currrently heavily worked on, but I'm not sure how far it is yet, would be Sage Math http://www.sagemath.org/I believe, Octave is more about powerful numeric procedures while Sage focuses on powerful analytical ones. As such, Octave is more like MatLab while Sage is more like Mathematica. It's not by any means a perfect comparison though. MatLab (and therefore Octave) are actually maybe even better for what you want, for it's a purely numeric task anyway.



Logged




David Makin


« Reply #6 on: March 06, 2013, 04:24:35 PM » 

Since UF can import images and you can then essentially do anything mathematical you like to them, writing any sort of convolution filters should be easy  assuming you know or can find the relevant algorithms (such as ffts), it's just a matter of writing them for UF.
I think Ron's already written some classbased image convolution formulas in UF though I don't think they use ffts but do allow you to specify the convolution grid size.



Logged




matsoljare


« Reply #7 on: March 06, 2013, 09:58:39 PM » 

The amount of operations really aren't that big  it's just the amount of pixels in the first image, times the amount in the second.



Logged




matsoljare


« Reply #8 on: July 08, 2013, 06:29:01 PM » 

Does nobody know of a program that lets you load a image to use as filter on another image, or on itself?



Logged




0Encrypted0


« Reply #9 on: July 08, 2013, 09:04:42 PM » 

Does nobody know of a program that lets you load a image to use as filter on another image, or on itself?
Kai's Power ToolsKPT Convolver and/or KPT Materializer (not freeware)



Logged




matsoljare


« Reply #10 on: July 09, 2013, 09:57:00 PM » 

Interesting, how would i go about with using this?



Logged




matsoljare


« Reply #11 on: September 30, 2013, 07:23:06 PM » 

I'm really, really curious to see what this would look like, applied for example to something like a outlineonly Mandelbrot or Julia set.



Logged






kram1032


« Reply #14 on: March 29, 2014, 10:34:02 AM » 

This looks rather convoluted. . . . ( ) You probably would need to implement a fourier transform of source material rather than the resulting image, such that you can properly convolve two fractals. The second image looks like a MSet. Perhaps you should use the logarithm of those images to make everything more visible.



Logged




