}
}
for (channel=0; channel <= MaxPixelChannels; channel++)
+ {
+ /*
+ Compute elliptical angle, major and minor axes, eccentricity, & intensity.
+ */
+ if (fabs(M00[channel]) < MagickEpsilon)
+ continue;
+ channel_moments[channel].centroid=centroid[channel];
+ channel_moments[channel].ellipse_axis.x=sqrt((2.0/M00[channel])*
+ ((M20[channel]+M02[channel])+sqrt(4.0*M11[channel]*M11[channel]+
+ (M20[channel]-M02[channel])*(M20[channel]-M02[channel]))));
+ channel_moments[channel].ellipse_axis.y=sqrt((2.0/M00[channel])*
+ ((M20[channel]+M02[channel])-sqrt(4.0*M11[channel]*M11[channel]+
+ (M20[channel]-M02[channel])*(M20[channel]-M02[channel]))));
+ channel_moments[channel].ellipse_angle=RadiansToDegrees(0.5*atan(2.0*
+ M11[channel]/(M20[channel]-M02[channel])));
+ channel_moments[channel].ellipse_eccentricity=sqrt(1.0-(
+ channel_moments[channel].ellipse_axis.y/
+ channel_moments[channel].ellipse_axis.x));
+ channel_moments[channel].ellipse_intensity=M00[channel]/(MagickPI*
+ channel_moments[channel].ellipse_axis.x*
+ channel_moments[channel].ellipse_axis.y);
+ }
+ for (channel=0; channel <= MaxPixelChannels; channel++)
{
/*
Normalize image moments.
(M30[channel]+M12[channel])-(M03[channel]+M21[channel])*
(M03[channel]+M21[channel]))-(M20[channel]-M02[channel])*
(M30[channel]+M12[channel])*(M03[channel]+M21[channel]);
- channel_moments[channel].centroid=centroid[channel];
- channel_moments[channel].ellipse_axis.x=sqrt((2.0/M00[channel])*
- ((M20[channel]+M02[channel])+sqrt(4.0*M11[channel]*M11[channel]+
- (M20[channel]-M02[channel])*(M20[channel]-M02[channel]))));
- channel_moments[channel].ellipse_axis.y=sqrt((2.0/M00[channel])*
- ((M20[channel]+M02[channel])-sqrt(4.0*M11[channel]*M11[channel]+
- (M20[channel]-M02[channel])*(M20[channel]-M02[channel]))));
- channel_moments[channel].ellipse_angle=RadiansToDegrees(0.5*atan(2.0*
- M11[channel]/(M20[channel]-M02[channel])));
- channel_moments[channel].ellipse_eccentricity=sqrt(1.0-(
- channel_moments[channel].ellipse_axis.y/
- channel_moments[channel].ellipse_axis.x));
- channel_moments[channel].ellipse_intensity=M00[channel]/(MagickPI*
- channel_moments[channel].ellipse_axis.x*
- channel_moments[channel].ellipse_axis.y);
}
if (y < (ssize_t) image->rows)
channel_moments=(ChannelMoments *) RelinquishMagickMemory(channel_moments);