You are on page 1of 2

nx = 100; ny = 100;

x = linspace(-2,2,nx);
y = linspace(-2,2,ny);
[X,Y] = ndgrid(x,y);
A = zeros(nx,ny);
A(find( abs(X)<1.5 & abs(Y)<1.5 )) = 1;
//f = scf(0)
//imshow(uint8(A)*255);
E = edge(A,'prewitt');
//f = scf(1)
//imshow(E);
[N,M] = find(E);
f = scf(0);
scatter(M,N);
yval = N - (nx/2);
xval = M - (ny/2);
f = scf(1)
scatter(xval,yval);
R = sqrt(xval.^2 + yval.^2);
T = size(xval,2)
theta = zeros(1,T)
for i=1:T
th = atan(yval(1,i)/xval(1,i));
if th<0 then
theta(1,i) = th + 2*%pi;
elseif th>0 then
theta(1,i) = th;
else
end

sortedtheta = mtlb_sort(theta);
xs = zeros(1,T);
ys = zeros(1,T);
c = 1
k = 1
for k=1:T
[I,J] = find(theta == sortedtheta(1,k))
ilen = size(J,2)
if k==1 then
if ilen > 1 then
for p=1:ilen
xs(1,c) = xval(1,J(1,p));
ys(1,c) = yval(1,J(1,p));
c = c+1
end,
else
xs(1,c) = xval(1,J(1,1));
ys(1,c) = yval(1,J(1,1));
c = c+1
end,
elseif k>1 then
if sortedtheta(1,k) == sortedtheta(1,k-1)
//do nothing
elseif sortedtheta(1,k) ~= sortedtheta(1,k-1) then
if ilen > 1 then
for p=1:ilen
xs(1,c) = xval(1,J(1,p));
ys(1,c) = yval(1,J(1,p));
c = c+1
end,
else
xs(1,c) = xval(1,J(1,1));
ys(1,c) = yval(1,J(1,1));
c = c+1
end,
else
end,
else
end,
end
end

f = scf(2)
scatter(xs,ys)
area = 0;
leng = size(xval,2);
for i = 1:(leng-1)
area = area + 0.5* (xs(1,i) * ys(1,i+1) - ys(1,i) * xs(1,i+1) );
end
areath = sum(A);
err = abs(area-areath)*100/areath

You might also like