关于matlab矩阵乘法表示

兰九 2016-07-15 10:22:06
代码如下~是一个简单的同态滤波器的程序,但就显示标红区.*有问题
clear ALL;
clc;

[image_0,map]=imread('lena.bmp');
image_1=log(double(image_0)+1);
image_2=fft2(image_1);
n=3;
D0=0.05*pi;
rh=0.8;
rl=0.5;
[row,col]=size(image_2);
for k=1:1:row
for l=1:1:col
D1(k,l)=sqrt((k^2+l^2));
H(k,l)=rl+(rh/(1+(D0/D1(k,l))^(2*n)));
end
end
image_3=H.*image_2;
image_4=ifft2(image_3);
image_5=(exp(image_4)-1);
figure(1),imshow(image_0,map)
figure(2),imshow(real(image_5),map)


说错误是这样的~~求大神赐教,谢谢
Error using .*
Complex integer arithmetic is not supported.

Error in Untitled3 (line 18)
image_3=H.*image_2;
...全文
519 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Hermione_zhang 2016-07-18
  • 打赏
  • 举报
回复
这个应该是图像维度的问题吧 image_2的图像是三维的,那个点乘运算就不知道是对哪一个维度尽心操作的 改成: image_3(:,:,1)=H.*image_2(:,:,1); image_3(:,:,2)=H.*image_2(:,:,2); image_3(:,:,3)=H.*image_2(:,:,3); 你看可行?

3,426

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 其他开发语言
社区管理员
  • 其他开发语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧