在 matlab 中手动制作卷积

问题描述

我想在matlab中进行卷积图像处理而不使用(conv2)命令 我想使用 (.^) 命令和 2 for 循环 我制作此代码是为了制作 LoG 5x5 过滤器 但它在这一行不起作用 (I(r,c) =sum(sum( Mask.* I( (r-2):(c-2),(r+2):(c+2) ) )) ;)

clc
clear;
Img = imread ('11.jpg');                                               %reading Image
for x = 1:size(Img,1)                                                  % converting to Gray 
    for y =1:size(Img,2)
        G (x,y)= (Img(x,y,1)*0.3 + Img(x,2)*0.59 + Img(x,1)* 0.11);
    end
end
Mask = [0,-1,0;0,-2,0;-1,16,-1;0,0]; % the mask
I=double(G);Mask=double(Mask);
% I=conv2(G,Mask);                                                      % masking quickly
for r = 3: size(I,1)-2                                                  %masking manualy
   for c = 3: size(I,2)-2
      I(r,(r+2):(c+2) ) ));
   end
end
imshow(Img);title('Orginal Image');
figure,imshow(G);title('Gray Image');
figure,imshow(uint8(I));title('Proccessed Image');

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)