matlab图像处理错误

Bra*_*esh 3 matlab fft image-processing complex-numbers

我试图在matlab中找到图像的傅里叶变换.我这样做没有库函数的功能.代码是:

clc;
clear;
N=128; 
a=imread('lena128','bmp');
zeros(N,N);
for m=1:N
    for n=1:N
        w(m,n)=(exp(-1i*2*pi/N))^((m-1)*(n-1));
    end
end
af1=(w*a);
af=((w*(af1.')).');
Run Code Online (Sandbox Code Playgroud)

编译此程序时,会发生以下错误:

??? Error using ==> mtimes
Complex integer arithmetic is not supported.
Error in ==> qn4 at 12
af1=(w*a);
Run Code Online (Sandbox Code Playgroud)

当我使用a = rand(1,128)而不是a = imread('lena128','bmp')时,我没有得到那个错误.我在网上搜索,发现了类似的问题.但没有解决方案.任何人都可以为我指出错误吗?

Gar*_*han 6

imread给你一个数组,其元素是整数(uint8我认为类型).然后你试图将那些具有复杂数字的东西组合在一起,但这不起作用.特别是,MATLAB不会自动将它们变成doubles或floats或类似的东西.

你可能应该说

a=double(imread('lena128','bmp'));
Run Code Online (Sandbox Code Playgroud)