polyangles.m in imageprocessing.rar


Gonzales matlab version of the digital image processing books. Detailed and ther...Original Link
    Sponsored links

			
function angles = polyangles(x, y)
%POLYANGLES Computes internal polygon angles.
%   ANGLES = POLYANGLES(X, Y) computes the interior angles (in
%   degrees) of an arbitrary polygon whose vertices are given in 
%   [X, Y], ordered in a clockwise manner.  The program eliminates
%   duplicate adjacent rows in [X Y], except that the first row may
%   equal the last, so that the polygon is closed.  

%   Copyright 2002-2004 R. C. Gonzalez, R. E. Woods, & S. L. Eddins
%   Digital Image Processing Using MATLAB, Prentice-Hall, 2004
%   $Revision: 1.6 $  $Date: 2003/11/21 14:44:06 $

% Preliminaries.
[x y] = dupgone(x, y); % Eliminate duplicate vertices.
xy = [x(:) y(:)];
if isempty(xy)
   % No vertices!
   angles = zeros(0, 1);
   return;
end
if size(xy, 1) == 1 | ~isequal(xy(1, :), xy(end, :))
   % Close the polygon
   xy(end + 1, :) = xy(1, :);
end

% Precompute some quantities.
d = diff(xy, 1);
v1 = -d(1:end, :);
v2 = [d(2:end, :); d(1, :)];
v1_dot_v2 = sum(v1 .* v2, 2);
mag_v1 = sqrt(sum(v1.^2, 2));
mag_v2 = sqrt(sum(v2.^2, 2));

% Protect against nearly duplicate vertices; output angle will be 90
% degrees for such cases. The "real" further protects against
% possible small imaginary angle components in those cases.
mag_v1(~mag_v1) = eps;
mag_v2(~mag_v2) = eps;
angles = real(acos(v1_dot_v2 ./ mag_v1 ./ mag_v2) * 180 / pi);

% The first angle computed was for the second vertex, and the
% last was for the first vertex. Scroll one position down to 
% make the last vertex be the first.
angles = circshift(angles, [1, 0]);

% Now determine if any vertices are concave and adjust the angles
% accordingly.
sgn = convex_angle_test(xy);

% Any element of sgn that's -1 indicates that the angle is
% concave. The corresponding angles have to be subtracted 
% from 360.
I = find(sgn == -1);
angles(I) = 360 - angles(I);

%-------------------------------------------------------------------%
function sgn = convex_angle_test(xy)
%   The rows of array xy are ordered vertices of a 			

			...
			...
			... to be continued.

  This is a preview. To get the complete source file, 
  please click here to download the whole source code package.

			
			


Project Files

    Sponsored links
NameSizeDate
 0_Read_Me_First.txt5.00 kB16-12-04 13:36
 adpmedian.m1.54 kB16-12-04 13:36
 average.m651.00 B16-12-04 13:36
 bayesgauss.m2.96 kB16-12-04 13:36
 bound2eight.m2.99 kB16-12-04 13:36
 bound2four.m2.42 kB16-12-04 13:36
 bound2im.m2.17 kB16-12-04 13:36
 boundaries.m5.64 kB16-12-04 13:36
 bsubsamp.m3.87 kB16-12-04 13:36
 changeclass.m592.00 B16-12-04 13:36
 colorgrad.m2.30 kB16-12-04 13:36
 colorseg.m2.37 kB16-12-04 13:36
 compare.m1.15 kB16-12-04 13:36
 connectpoly.m1.02 kB16-12-04 13:36
 Contents.m5.98 kB16-12-04 13:36
 conwaylaws.m799.00 B16-12-04 13:36
 covmatrix.m977.00 B16-12-04 13:36
 dftcorr.m687.00 B16-12-04 13:36
 dftfilt.m882.00 B16-12-04 13:36
 dftuv.m736.00 B16-12-04 13:36
 diameter.m6.47 kB16-12-04 13:36
 endpoints.m874.00 B16-12-04 13:36
 entropy.m1.00 kB16-12-04 13:36
 fchcode.m8.55 kB16-12-04 13:36
 frdescp.m1.42 kB16-12-04 13:36
 fwtcompare.m992.00 B16-12-04 13:36
 gmean.m447.00 B16-12-04 13:36
 gscale.m2.04 kB16-12-04 13:36
 histroi.m920.00 B16-12-04 13:36
 hough.m2.64 kB16-12-04 13:36
 houghlines.m2.82 kB16-12-04 13:36
 houghpeaks.m2.65 kB16-12-04 13:36
 houghpixels.m1.02 kB16-12-04 13:36
 hpfilter.m1.23 kB16-12-04 13:36
 hsi2rgb.m1.94 kB16-12-04 13:36
 huff2mat.m2.46 kB16-12-04 13:36
 huffman.m2.82 kB16-12-04 13:36
 ice.fig45.71 kB16-12-04 13:36
 ice.m26.30 kB16-12-04 13:36
 ice_stand_alone.m46.55 kB16-12-04 13:36
 DIPUM_toolbox_m-file_v1[1].1.3_part1.rar60.11 kB13-04-09 20:38
 ifrdescp.m1.38 kB16-12-04 13:36
 ifwtcompare.m1.12 kB16-12-04 13:36
 im2jpeg.m2.90 kB16-12-04 13:36
 im2jpeg2k.m3.97 kB16-12-04 13:36
 imnoise2.m4.20 kB16-12-04 13:36
 imnoise3.m2.12 kB16-12-04 13:36
 improd.m791.00 B16-12-04 13:36
 imratio.m1.30 kB16-12-04 13:36
 imstack2vectors.m1.83 kB16-12-04 13:36
 intline.m1.20 kB16-12-04 13:36
 intrans.m3.25 kB16-12-04 13:36
 invmoments.m3.24 kB16-12-04 13:36
 jpeg2im.m2.41 kB16-12-04 13:36
 jpeg2k2im.m1.90 kB16-12-04 13:36
 lpc2mat.m1.42 kB16-12-04 13:36
 lpfilter.m1.44 kB16-12-04 13:36
 mahalanobis.m1.97 kB16-12-04 13:36
 manualhist.m1.75 kB16-12-04 13:36
 mat2huff.m2.75 kB16-12-04 13:36
 mat2lpc.m1.28 kB16-12-04 13:36
 minperpoly.m7.15 kB16-12-04 13:36
 paddedsize.m1.29 kB16-12-04 13:36
 pixeldup.m950.00 B16-12-04 13:36
 polyangles.m6.14 kB16-12-04 13:36
 princomp.m2.88 kB16-12-04 13:36
 quantize.m1.33 kB16-12-04 13:36
 randvertex.m1.15 kB16-12-04 13:36
 Readme.m5.30 kB16-12-04 13:36
 regiongrow.m1.66 kB16-12-04 13:36
 rgb2hsi.m1.46 kB16-12-04 13:36
 rgbcube.m1.98 kB16-12-04 13:36
 signature.m4.45 kB16-12-04 13:36
 specxture.m2.57 kB16-12-04 13:36
 spfilt.m3.78 kB16-12-04 13:36
 splitmerge.m4.13 kB16-12-04 13:36
 statmoments.m1.72 kB16-12-04 13:36
 statxture.m1.55 kB16-12-04 13:36
 strsimilarity.m1.78 kB16-12-04 13:36
 subim.m713.00 B16-12-04 13:36
 twodsin.m1.04 kB16-12-04 13:36
 twomodegauss.m1.16 kB16-12-04 13:36
 unravel.dll7.00 kB16-12-04 13:36
 unravel.m967.00 B16-12-04 13:36
 unravel.mexaxp24.00 kB16-12-04 13:36
 unravel.mexglx18.97 kB16-12-04 13:36
 unravel.mexhpux12.00 kB16-12-04 13:36
 unravel.mexmac8.68 kB16-12-04 13:36
 unravel.mexrs62.71 kB16-12-04 13:36
 unravel.mexsg24.44 kB16-12-04 13:36
 unravel.mexsol8.54 kB16-12-04 13:36
 vistformfwd.m1.66 kB16-12-04 13:36
 wave2gray.m4.67 kB16-12-04 13:36
 waveback.m4.52 kB16-12-04 13:36
 wavecopy.m940.00 B16-12-04 13:36
 wavecut.m1.06 kB16-12-04 13:36
 wavefast.m4.14 kB16-12-04 13:36
 wavefilter.m4.77 kB16-12-04 13:36
 wavepaste.m1.04 kB16-12-04 13:36
 wavework.m3.45 kB16-12-04 13:36
 wavezero.m696.00 B16-12-04 13:36
 x2majoraxis.m3.59 kB16-12-04 13:36
 DIPUM_toolbox_m-file_v1[1].1.3_part2.rar85.71 kB13-04-09 20:39
 <DIPUM_toolbox_m-file_v1[1].1.3_part1>0.00 B02-07-09 16:26
 <DIPUM_toolbox_m-file_v1[1].1.3_part2>0.00 B02-07-09 16:26
 <冈萨雷斯(matlab)>0.00 B02-07-09 16:26
...

Related Items

    Sponsored links