alpha,
beta;
- alpha=image_phash[channel].P[i];
- beta=reconstruct_phash[channel].P[i];
+ alpha=image_phash[channel].srgb_moment[i];
+ beta=reconstruct_phash[channel].srgb_moment[i];
difference+=(beta-alpha)*(beta-alpha);
}
distortion[channel]+=difference;
alpha,
beta;
- alpha=image_phash[channel].Q[i];
- beta=reconstruct_phash[channel].Q[i];
+ alpha=image_phash[channel].hclp_moment[i];
+ beta=reconstruct_phash[channel].hclp_moment[i];
difference+=(beta-alpha)*(beta-alpha);
}
distortion[channel]+=difference;
n=FormatLocaleFile(file," %s:\n",name);
for (i=0; i < 7; i++)
n+=FormatLocaleFile(file," PH%.20g: %.*g, %.*g\n",i+1.0,
- GetMagickPrecision(),channel_phash[channel].P[i],
- GetMagickPrecision(),channel_phash[channel].Q[i]);
+ GetMagickPrecision(),channel_phash[channel].srgb_moment[i],
+ GetMagickPrecision(),channel_phash[channel].hclp_moment[i]);
return(n);
}
return((ChannelPerceptualHash *) NULL);
for (channel=0; channel <= MaxPixelChannels; channel++)
for (i=0; i < 7; i++)
- perceptual_hash[channel].P[i]=(-MagickLog10(moments[channel].I[i]));
+ perceptual_hash[channel].srgb_moment[i]=
+ (-MagickLog10(moments[channel].I[i]));
moments=(ChannelMoments *) RelinquishMagickMemory(moments);
/*
Blur then transform to HCLp colorspace.
}
for (channel=0; channel <= MaxPixelChannels; channel++)
for (i=0; i < 7; i++)
- perceptual_hash[channel].Q[i]=(-MagickLog10(moments[channel].I[i]));
+ perceptual_hash[channel].hclp_moment[i]=
+ (-MagickLog10(moments[channel].I[i]));
moments=(ChannelMoments *) RelinquishMagickMemory(moments);
return(perceptual_hash);
}
typedef struct _ChannelPerceptualHash
{
double
- P[32],
- Q[32];
+ srgb_moment[32],
+ hclp_moment[32];
} ChannelPerceptualHash;
typedef enum
#define MagickppLibAddendum "-0"
#define MagickppLibInterface 1
#define MagickppLibMinInterface 1
-#define MagickReleaseDate "2014-08-26"
+#define MagickReleaseDate "2014-09-05"
#define MagickChangeDate "20120427"
#define MagickAuthoritativeURL "http://www.imagemagick.org"
#define MagickFeatures "DPC HDRI OpenMP"
for (i=0; i < 6; i++)
n+=FormatLocaleFile(file,
" \"PH%.20g\": [ \"%.*g\", \"%.*g\" ],\n",i+1.0,
- GetMagickPrecision(),channel_phash[channel].P[i],
- GetMagickPrecision(),channel_phash[channel].Q[i]);
+ GetMagickPrecision(),channel_phash[channel].srgb_moment[i],
+ GetMagickPrecision(),channel_phash[channel].hclp_moment[i]);
n+=FormatLocaleFile(file,
" \"PH%.20g\": [ \"%.*g\", \"%.*g\" ]\n",i+1.0,
- GetMagickPrecision(),channel_phash[channel].P[i],
- GetMagickPrecision(),channel_phash[channel].Q[i]);
+ GetMagickPrecision(),channel_phash[channel].srgb_moment[i],
+ GetMagickPrecision(),channel_phash[channel].hclp_moment[i]);
(void) FormatLocaleFile(file," }");
if (separator != MagickFalse)
(void) FormatLocaleFile(file,",");