【发布时间】:2020-12-19 09:02:32
【问题描述】:
我想在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,y,2)*0.59 + Img(x,y,1)* 0.11);
end
end
Mask = [0,0,-1,0,0;0,-1,-2,-1,0;-1,-2,16,-2,-1;0,-1,-2,-1,0;0,0,-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,c) =sum(sum( Mask.* I( (r-2):(c-2), (r+2):(c+2) ) ));
end
end
imshow(Img);title('Orginal Image');
figure,imshow(G);title('Gray Image');
figure,imshow(uint8(I));title('Proccessed Image');
【问题讨论】:
标签: matlab-figure