DSPRelated.com
Forums

IIR for image processing in Matlab. How???? (Plz help)

Started by Unknown February 4, 2005
Hello, would any one out there can help me how to appy IIR to filter an
256x256 image using IIR in Matlab? is there any function for it (I mean
2 D IIR filter).

I have to use a IIR filter to filter a image and it is required that I
do it in Matlab.

I have done it in C and using difference equation:

y(m,n)=a1*x(m,n)+a2*y(m-1,n)+.....

and everything is fine.

Now I have to do it in matlab. I am provided the transfer function
H(z1,z2), and an original image:( 256x256)

The problem is that if I do the same as what I did in C as follows:

for i=2:256
for j=2:256

y(i,j)=a1*x(i,j)+a2*y(i-1,j)... and so on

end
end


MATLAB runs very slowly and it seems that it will never finish.


I think I can do another way by calculate X,H in frequency domain and
then transform back to the spacial domain. But I don't know how to do
that. Would any one out there can help me out?

Thank you very much

yours truly

IIR filters are not supported in the Image Processing Tool Box of
MATLAB as it produces instability.

George

<thanhhahuy@gmail.com> wrote in message 
news:1107504853.471941.215400@g14g2000cwa.googlegroups.com...
> Hello, would any one out there can help me how to appy IIR to filter an > 256x256 image using IIR in Matlab? is there any function for it (I mean > 2 D IIR filter). > > I have to use a IIR filter to filter a image and it is required that I > do it in Matlab. > > I have done it in C and using difference equation: > > y(m,n)=a1*x(m,n)+a2*y(m-1,n)+..... > > and everything is fine. > > Now I have to do it in matlab. I am provided the transfer function > H(z1,z2), and an original image:( 256x256) > > The problem is that if I do the same as what I did in C as follows: > > for i=2:256 > for j=2:256 > > y(i,j)=a1*x(i,j)+a2*y(i-1,j)... and so on > > end > end > > > MATLAB runs very slowly and it seems that it will never finish. > > > I think I can do another way by calculate X,H in frequency domain and > then transform back to the spacial domain. But I don't know how to do > that. Would any one out there can help me out? > > Thank you very much > > yours truly >
Hi - hope you also posted this in comp.soft-sys.matlab as they will tell you to get rid of those hideous clunky for loops and "vectorise" it and maybe even give some suggestions as to how ; after which it will be much faster. Best of luck - Mike