Miguel Jiménez
Miguel Jiménez

Reputation: 1303

General matrix definition for image filtering or trasnformation

I am looking for matrices I can generate to transform other matrices, but I am not talking about regular matrices like:


From this question: The canonical examples you'll find everywhere are non-gaussian box blur:

1 1 1
1 1 1
1 1 1

Image sharpening:

 0  -1   0
-1   5  -1
 0  -1   0

Edge detection:

0  1  0
1 -4  1
0  1  0

and emboss:

-2 -1  0
-1  1  1
 0  1  2

Those are for applying to each region of an image, I just want a big matrix. Is that possible?

For example: A 2560*2560 matrix that I can multiply directly with an image of 2560*2560 pixels.

Upvotes: 0

Views: 52

Answers (1)

Dan
Dan

Reputation: 472

Yes it's possible, but maybe not in the way you would think. Take a look at the Gaussian blur example at http://scipy-lectures.github.io/intro/scipy.html#fast-fourier-transforms-scipy-fftpack

The thing is that convolution in the image is equivalent to multiplication in the frequency domain. This is the Convolution Theorem from Fourier Transforms (https://en.wikipedia.org/wiki/Fourier_transform#Convolution_theorem). So, it is possible -- and in fact for huge images like you're talking about it should be faster. But the matrices are no longer simple ones like the examples you posted above.

Upvotes: 1

Related Questions