Getting Error In FFT filtering ?

1 visualizzazione (ultimi 30 giorni)
jagannath mishra
jagannath mishra il 4 Mag 2013
sir i tried to make a gaussian filter.i use the steps given in the book(digital image processing using MATLAB,OF Gonzalez & Woods & Eddins )in the chapter3.i have done upto the step
[f,revertclass]=tofloat(f)
here 'f' is an image(of int8),here also given an error that"Undefined function or method 'tofloat' for input arguments of type 'uint8'."
PQ=paddedsize(size(f));
F=fft2(f,PQ(1),PQ(2));
then i use gaussian filter and get the transfer function.and then
H=ifftshift(H) for making center
then G=H.*F;
here i get an error which is "Error using ==> times Matrix dimensions must agree.
Error in ==> gaussian at 16
G=H.*F;"
please tell me how to overcome from this error

Risposta accettata

Jordan Monthei
Jordan Monthei il 8 Mag 2013
you are performing matrix multiplication when you use the '.*' command. The error you are receiving is telling you that the two "matrices" that you are trying to multiply are not of the same dimensions.
I assume you are trying to multiply numbers and not matrices and would recommend using '*' and not '.*'
  3 Commenti
Image Analyst
Image Analyst il 8 Mag 2013
Jordan, what you said about multiplication is exactly the opposite of what it is. * is matrix multiplication and .* is element-by-element multiplication.
Jordan Monthei
Jordan Monthei il 8 Mag 2013
I stand corrected. good catch.

Accedi per commentare.

Più risposte (1)

Image Analyst
Image Analyst il 8 Mag 2013
Make sure H and F are the same size.
size(H)
size(f)
size(PQ)
size(F)
What does all that report?

Categorie

Scopri di più su Images in Help Center e File Exchange

Prodotti

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by