如何解决在MATLAB中使用FFT对图像进行滤波时出现的“数组大小不兼容”错误?

irtuqstp  于 2023-05-29  发布在  Matlab
关注(0)|答案(1)|浏览(596)

我试图计算一个数组的FFT,但我得到一个错误:* “数组大小不兼容”*。如何解决这个问题?下面是我的代码:

% Read the image
im = imread('image2.jpg');

% Convert the image to double precision
im = im2double(im);

% Compute the FFT of the image
F = fft2(im);

% Define the filter mask
mask = [-1 -1 -1; -1 8 -1; -1 -1 -1];

% Filter the FFT using the mask
F_filtered = F .* fftshift(mask);

% Display the magnitude of the filtered FFT
imshow(log(abs(fftshift(F_filtered))), []); 

this error is coming 
Arrays have incompatible sizes for this operation.

Error in task3 (line 32)
F_filtered = F .* fftshift(mask);
uyhoqukh

uyhoqukh1#

F_filtered = F .* fftshift(mask);

在这行代码中,您尝试将掩码滤波器应用于傅立叶变换F
符号.*表示两个矩阵的逐个元素乘法。因此,当我们试图乘以位置时,两个矩阵应该具有相同的维度。
根据定义,这里的mask具有尺寸[3 3]Fimage2.jpg的傅立叶变换,可能与mask的维数不同,因此,您会得到此错误。
请将mask更改为与图像的傅立叶变换具有相同的尺寸,并且您不应该得到此错误。
希望这有帮助!

相关问题