blob: e74fbb6dc532fd11eef92afd709e112124e24cdb [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html version="-//W3C//DTD XHTML 1.1//EN"
xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3.org/1999/xhtml
http://www.w3.org/MarkUp/SCHEMA/xhtml11.xsd">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="verify-v1" content="g222frIIxcQTrvDR3NBRUSKP3AnMNoqxOkIniCEkV7U="/>
<title>ImageMagick: MagickCore, C API for ImageMagick: Compare an Image to a Reconstructed Image</title>
<meta http-equiv="Content-Language" content="en-US"/>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="Reply-to" content="magick-users@imagemagick.org"/>
<meta name="Application-name" content="ImageMagick"/>
<meta name="Description" content="Use ImageMagick to convert, edit, or compose bitmap images in a variety of formats. In addition resize, rotate, shear, distort and transform images."/>
<meta name="Application-url" content="http://www.imagemagick.org"/>
<meta name="Generator" content="PHP"/>
<meta name="Keywords" content="magickcore, c, api, for, imagemagick:, compare, an, image, to, a, reconstructed, image, ImageMagick, ImageMagic, MagickCore, MagickWand, PerlMagick, Magick++, RMagick, PythonMagick, JMagick, TclMagick, Image, Magick, Magic, Wand, ImageMagickObject, Swiss, Army, Knife, Image, Processing"/>
<meta name="Rating" content="GENERAL"/>
<meta name="Robots" content="INDEX, FOLLOW"/>
<meta name="Generator" content="ImageMagick Studio LLC"/>
<meta name="Author" content="ImageMagick Studio LLC"/>
<meta name="Revisit-after" content="2 DAYS"/>
<meta name="Resource-type" content="document"/>
<meta name="Copyright" content="Copyright (c) 1999-2011 ImageMagick Studio LLC"/>
<meta name="Distribution" content="Global"/>
<link rel="icon" href="../../images/wand.png"/>
<link rel="shortcut icon" href="../../images/wand.ico" type="images/x-icon"/>
<link rel="meta" type="application/rdf+xml" title="ICI" href="http://imagemagick.org/ici.rdf"/>
<link rel="stylesheet" href="http://www.google.com/cse/style/look/default.css" type="text/css" />
<style type="text/css" media="all">
@import url("../../www/magick.css");
</style>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
<script type="text/javascript" src="../fancybox/jquery.fancybox-1.3.4.pack.js"></script>
<link rel="stylesheet" type="text/css" href="../fancybox/jquery.fancybox-1.3.4.css" media="screen" />
<script type="text/javascript">
$(document).ready(function() {
$("a[href$=.jpg],a[href$=.png],a[href$=.gif]").fancybox({
'transitionIn' : 'elastic',
'transitionOut' : 'elastic',
'overlayShow' : false,
'opacity' : true
});
});
</script>
</head>
<body id="www-imagemagick-org">
<div class="titlebar">
<a href="../../index.html">
<img src="../../images/script.png" alt="[ImageMagick]"
style="width: 350px; height: 60px; margin: 28px auto; float: left;" /></a>
<a href="http://www.networkredux.com">
<img src="../../images/networkredux.png" alt="[sponsor]"
style="margin-top: 42px; border: 0px; float: left;" /></a>
<a href="http://www.imagemagick.org/discourse-server/">
<img src="../../images/logo.jpg"
alt="ImageMagick Logo"
style="width: 123px; height: 118px; border: 0px; float: right;" /></a>
<a href="../../index.html">
<img src="../../images/sprite.jpg"
alt="ImageMagick Sprite"
style="width: 114px; height: 118px; border: 0px; float: right;" /></a>
</div>
<div class="westbar">
<div class="menu">
<a title="About ImageMagick" href="../../index.html">About ImageMagick</a>
</div>
<div class="sep"></div>
<div class="menu">
<a title="Binary Releases" href="../../www/binary-releases.html">Binary Releases</a>
</div>
<div class="sub">
<a title="Binary Release: Unix" href="../../www/binary-releases.html#unix">Unix</a>
</div>
<div class="sub">
<a title="Binary Release: MacOS X" href="../../www/binary-releases.html#macosx">Mac OS X</a>
</div>
<div class="sub">
<a title="Binary Release: iPhone" href="../../www/binary-releases.html#iPhone">iPhone</a>
</div>
<div class="sub">
<a title="Binary Release: Windows" href="../../www/binary-releases.html#windows">Windows</a>
</div>
<div class="sep"></div>
<div class="menu">
<a title="Command-line Tools" href="../../www/command-line-tools.html">Command-line Tools</a>
</div>
<div class="sub">
<a title="Command-line Tools: Processing" href="../../www/command-line-processing.html">Processing</a>
</div>
<div class="sub">
<a title="Command-line Tools: Options" href="../../www/command-line-options.html">Options</a>
</div>
<div class="sub">
<a title="Command-line Tools: Usage" href="http://www.imagemagick.org/Usage/">Usage</a>
</div>
<div class="menu">
<a title="Program Interfaces" href="../../www/api.html">Program Interfaces</a>
</div>
<div class="sub">
<a title="Program Interface: MagickWand" href="../../www/magick-wand.html">MagickWand</a>
</div>
<div class="sub">
<a title="Program Interface: MagickCore" href="../../www/magick-core.html">MagickCore</a>
</div>
<div class="sub">
<a title="Program Interface: PerlMagick" href="../../www/perl-magick.html">PerlMagick</a>
</div>
<div class="sub">
<a title="Program Interface: Magick++" href="../../www/magick++.html">Magick++</a>
</div>
<div class="sep"></div>
<div class="menu">
<a title="Install from Source" href="../../www/install-source.html">Install from Source</a>
</div>
<div class="sub">
<a title="Install from Source: Unix" href="../../www/install-source.html#unix">Unix</a>
</div>
<div class="sub">
<a title="Install from Source: Windows" href="../../www/install-source.html#windows">Windows</a>
</div>
<div class="menu">
<a title="Resources" href="../../www/resources.html">Resources</a>
</div>
<div class="menu">
<a title="Architecture" href="../../www/architecture.html">Architecture</a>
</div>
<div class="menu">
<a title="Download" href="../../www/download.html">Download</a>
</div>
<div class="sep"></div>
<div class="menu">
<a title="Search" href="../../www/search.html">Search</a>
</div>
<div class="sep"></div>
<div class="menu">
<a title="Site Map" href="../../www/sitemap.html">Site Map</a>
</div>
<div class="sub">
<a title="Site Map: Links" href="../../www/links.html">Links</a>
</div>
<div class="sep"></div>
<div class="menu">
<a title="Sponsors" href="../../www/sponsors.html">Sponsors:</a>
<div class="sponsbox">
<div class="sponsor">
<a title="Sponsor: Best Web Hosting" href="http://webhostinggeeks.com">Best Web Hosting</a><!-- 201110010720 -->
</div>
<div class="sponsor">
<a title="Sponsor: Web Hosting Ratings" href="http://webhostingrating.com">Web Hosting Ratings</a><!-- 201110010720 -->
</div>
<div class="sponsor">
<a title="Sponsor: Druckerei" href="http://www.allesdruck.de">Druckerei</a><!-- 201107010240 r.leo -->
</div>
<div class="sponsor">
<a title="Sponsor: Web Hosting" href="http://www.bodhost.com/hosting.shtml">Web Hosting</a><!-- 201104010090 -->
</div>
<div class="sponsor">
<a title="Sponsor: Image Converter" href="http://www.batchphoto.com">Image Converter</a><!-- 201103010900 Bits Coffee-->
</div>
<div class="sponsor">
<a title="Sponsor: Flyer drucken" href="http://www.online-druck.biz">Flyer drucken</a><!-- 201109010900 Floeter-->
</div>
<div class="sponsor">
<a title="Sponsor: Druckerei" href="http://print24.com/de/">Druckerei</a><!-- 201110010720 -->
</div>
<div class="sponsor">
<a title="Sponsor: Custom T-Shirts" href="http://www.ooshirts.com">Custom T-Shirts</a><!-- 2011050100030 ooshirts.com-->
</div>
</div>
</div>
</div>
<div class="eastbar">
<script type="text/javascript">
<!--
google_ad_client = "pub-3129977114552745";
google_ad_slot = "0574824969";
google_ad_width = 160;
google_ad_height = 600;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</div>
<div class="main">
<h1>Module compare Methods</h1>
<p class="navigation-index">[<a href="#CompareImageChannels">CompareImageChannels</a> &bull; <a href="#GetImageChannelDistortion">GetImageChannelDistortion</a> &bull; <a href="#GetImageChannelDistrortion">GetImageChannelDistrortion</a> &bull; <a href="#IsImagesEqual">IsImagesEqual</a> &bull; <a href="#SimilarityImage">SimilarityImage</a>]</p>
<h2><a href="http://www.imagemagick.org/api/MagickCore/compare_8c.html" id="CompareImageChannels">CompareImageChannels</a></h2>
<div class="doc-section">
<p>CompareImageChannels() compares one or more image channels of an image to a reconstructed image and returns the difference image.</p>
<p>The format of the CompareImageChannels method is:</p>
<pre class="code">
Image *CompareImageChannels(const Image *image,
const Image *reconstruct_image,const ChannelType channel,
const MetricType metric,double *distortion,ExceptionInfo *exception)
</pre>
<p>A description of each parameter follows:</p>
<h5>image</h5>
<p>the image.</p>
<h5>reconstruct_image</h5>
<p>the reconstruct image.</p>
<h5>channel</h5>
<p>the channel.</p>
<h5>metric</h5>
<p>the metric.</p>
<h5>distortion</h5>
<p>the computed distortion between the images.</p>
<h5>exception</h5>
<p>return any errors or warnings in this structure.</p>
</div>
<h2><a href="http://www.imagemagick.org/api/MagickCore/compare_8c.html" id="GetImageChannelDistortion">GetImageChannelDistortion</a></h2>
<div class="doc-section">
<p>GetImageChannelDistortion() compares one or more image channels of an image to a reconstructed image and returns the specified distortion metric.</p>
<p>The format of the CompareImageChannels method is:</p>
<pre class="code">
MagickBooleanType GetImageChannelDistortion(const Image *image,
const Image *reconstruct_image,const ChannelType channel,
const MetricType metric,double *distortion,ExceptionInfo *exception)
</pre>
<p>A description of each parameter follows:</p>
<h5>image</h5>
<p>the image.</p>
<h5>reconstruct_image</h5>
<p>the reconstruct image.</p>
<h5>channel</h5>
<p>the channel.</p>
<h5>metric</h5>
<p>the metric.</p>
<h5>distortion</h5>
<p>the computed distortion between the images.</p>
<h5>exception</h5>
<p>return any errors or warnings in this structure.</p>
</div>
<h2><a href="http://www.imagemagick.org/api/MagickCore/compare_8c.html" id="GetImageChannelDistrortion">GetImageChannelDistrortion</a></h2>
<div class="doc-section">
<p>GetImageChannelDistrortion() compares the image channels of an image to a reconstructed image and returns the specified distortion metric for each channel.</p>
<p>The format of the CompareImageChannels method is:</p>
<pre class="code">
double *GetImageChannelDistortions(const Image *image,
const Image *reconstruct_image,const MetricType metric,
ExceptionInfo *exception)
</pre>
<p>A description of each parameter follows:</p>
<h5>image</h5>
<p>the image.</p>
<h5>reconstruct_image</h5>
<p>the reconstruct image.</p>
<h5>metric</h5>
<p>the metric.</p>
<h5>exception</h5>
<p>return any errors or warnings in this structure.</p>
</div>
<h2><a href="http://www.imagemagick.org/api/MagickCore/compare_8c.html" id="IsImagesEqual">IsImagesEqual</a></h2>
<div class="doc-section">
<p>IsImagesEqual() measures the difference between colors at each pixel location of two images. A value other than 0 means the colors match exactly. Otherwise an error measure is computed by summing over all pixels in an image the distance squared in RGB space between each image pixel and its corresponding pixel in the reconstruct image. The error measure is assigned to these image members:</p>
<pre class="text">
o mean_error_per_pixel: The mean error for any single pixel in
the image.
</pre>
<h5>normalized_mean_error</h5>
<p>The normalized mean quantization error for any single pixel in the image. This distance measure is normalized to a range between 0 and 1. It is independent of the range of red, green, and blue values in the image.</p>
<h5>normalized_maximum_error</h5>
<p>The normalized maximum quantization error for any single pixel in the image. This distance measure is normalized to a range between 0 and 1. It is independent of the range of red, green, and blue values in your image.</p>
<p>A small normalized mean square error, accessed as image->normalized_mean_error, suggests the images are very similar in spatial layout and color.</p>
<p>The format of the IsImagesEqual method is:</p>
<pre class="code">
MagickBooleanType IsImagesEqual(Image *image,
const Image *reconstruct_image)
</pre>
<p>A description of each parameter follows.</p>
<h5>image</h5>
<p>the image.</p>
<h5>reconstruct_image</h5>
<p>the reconstruct image.</p>
</div>
<h2><a href="http://www.imagemagick.org/api/MagickCore/compare_8c.html" id="SimilarityImage">SimilarityImage</a></h2>
<div class="doc-section">
<p>SimilarityImage() compares the reference image of the image and returns the best match offset. In addition, it returns a similarity image such that an exact match location is completely white and if none of the pixels match, black, otherwise some gray level in-between.</p>
<p>The format of the SimilarityImageImage method is:</p>
<pre class="code">
Image *SimilarityImage(const Image *image,const Image *reference,
RectangleInfo *offset,double *similarity,ExceptionInfo *exception)
</pre>
<p>A description of each parameter follows:</p>
<h5>image</h5>
<p>the image.</p>
<h5>reference</h5>
<p>find an area of the image that closely resembles this image.</p>
<p>o the best match offset of the reference image within the image.</p>
<h5>similarity</h5>
<p>the computed similarity between the images.</p>
<h5>exception</h5>
<p>return any errors or warnings in this structure.</p>
</div>
</div>
<div id="linkbar">
<span id="linkbar-west">&nbsp;</span>
<span id="linkbar-center">
<a href="http://www.imagemagick.org/discourse-server/">Discourse Server</a> &bull;
<a href="http://www.imagemagick.org/MagickStudio/scripts/MagickStudio.cgi">Studio</a>
</span>
<span id="linkbar-east">&nbsp;</span>
</div>
<div class="footer">
<span id="footer-west">&copy; 1999-2011 ImageMagick Studio LLC</span>
<span id="footer-east"> <a href="../http://www.imagemagick.org/script/contact.php">Contact the Wizards</a></span>
</div>
<div style="clear: both; margin: 0; width: 100%; "></div>
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-17690367-1']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
</body>
</html>