繁体   English   中英

matlab图像处理错误

[英]matlab image processing error

我试图在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.')).');

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

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

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

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

你可能应该说

a=double(imread('lena128','bmp'));

imread函数返回用于灰度bmp图像的uint8元素矩阵。 许多MatLab函数和操作仅适用于double元素。 使用im2double将图像转换为双矩阵。

a=imread('lena128','bmp');
a=im2double(a);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM