MATLAB Answers

Getting Error In FFT filtering ?

6 views (last 30 days)
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

  0 Comments

Sign in to comment.

Accepted Answer

Jordan Monthei
Jordan Monthei on 8 May 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 Comments

Jordan Monthei
Jordan Monthei on 8 May 2013
[f,revertclass]=tofloat(f)
This line is reading the value of 'f' which is returned from the function 'tofloat'. Is this function being declared in your program prior to being called?
Image Analyst
Image Analyst on 8 May 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 on 8 May 2013
I stand corrected. good catch.

Sign in to comment.

More Answers (1)

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

  1 Comment

jagannath mishra
jagannath mishra on 9 May 2013
thanks sir i made it and it works.thanks a lot

Sign in to comment.

Sign in to answer this question.