Hello! I tried to create a low-pass filter to mask for an image regarding to filtering of an image in frequency domain.
After I have compute my code, it return with a "Index Exceeds Matrix Dimensions" error.
warning offa = imread('valley.jpg');b = im2double(a);[m,n] = size(b);c = zeros(2*m,2*n);[p,q] = size(c);for i=1:p for j=1:q if i<=m && j<=n c(i,j)= b(i,j); else c(i,j) = 0; end endendimshow(b); title('Original Image');figureimshow(c); title('Padded Image');d = zeros(p,q);for i=1:p for j=1:q d(i,j) = c(i,j).*(-1).^(i+j); endendfigureimshow(d); title('Pre Processed Image for Calculating DFT');e = fft2(d);figureimshow(e); title('2D DFT of the Pre Process Image');[x,y] = freqspace(p,'meshgrid');z = zeros(p,q);for i=1:p for j=1:q z(i,j) = sqrt((x(i,j).^2)+(y(i,j).^2)); endendH = zeros(p,q);for i=1:p for j=1:q if z(i,j)<=0.4 H(i,j)=1; else H(i,j)=0; end endendfigureimshow(H);title('Low Pass Filter Mask');Index exceeds matrix dimensions.Error in freqD(line 39) z(i,j) = sqrt((x(i,j).^2)+(y(i,j).^2));
It would be kind of you guys to guide me for possible solution.
Thank you!
Best Answer