【发布时间】:2012-02-25 13:12:34
【问题描述】:
我遇到了一些麻烦,因为我是新概念图像分析和工具 Matlab。 我脑子里想的不是代码行。
我正在尝试对二值图像进行膨胀函数。它必须扩大给定的二值图像。
这是我的主页:
I = imread('logo_XXXX.png');
binaryImage = im2bw(I, 0.4);
s = ones(3,3,'int8');
i = dilate(binaryImage,s);
figure, imshow(i);
这是 dilate.m 函数:
function [i] = dilate(I,s)
[Irows,Icols] = size(I);
i=I;
Itemp = I;
for row=1:Irows
for col=1:Icols
x = intersectAt(Itemp,s,row,col);
if x == 1
i(row,col)=1;
else
i(row,col)=0;
end
end
end
这是 istersectAt.m 函数:
function [i] = intersectAt(I,s,row,col)
[Srows,Scols] = size(s);
[Irows,Icols] = size(I);
i=0;
rowx = row - int8(Srows/2);
colx = col - int8(Scols/2);
for r=1:Srows
for c=1:Scols
if rowx+r <= 0 || rowx+r > Irows || colx+c <= 0 || colx+c > Icols
continue;
elseif I(rowx+r,colx+c) == 1 && s(r,c)==1
i = 1;
end
end
end
这些代码必须加宽此图像:
然而,在某些时候它不能正常工作:
如果你帮我修复我的代码,我会很高兴的。如果你想了解扩张,可以关注这个网址:http://www.mathworks.com/help/toolbox/images/f18-12508.html
Matlab 的库中有这个函数,但我需要实现自己的函数。
【问题讨论】:
标签: matlab image-processing matrix computer-vision