blob: 18ff42685ee66c0b538c5958d161002721fc063c [file] [log] [blame]
cristydcca3fa2010-12-29 21:50:07 +00001<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
2 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
3<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" dir="ltr">
cristy3eaa0ef2010-03-06 20:35:26 +00004<head>
cristy3c98a4f2010-08-13 20:09:41 +00005 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
6 <meta name="verify-v1" content="g222frIIxcQTrvDR3NBRUSKP3AnMNoqxOkIniCEkV7U="/>
cristyffb69ed2010-12-25 00:06:48 +00007 <title>ImageMagick: MagickCore, C API for ImageMagick: Compare an Image to a Reconstructed Image</title>
cristy3ed852e2009-09-05 21:47:34 +00008 <meta http-equiv="Content-Language" content="en-US"/>
9 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
10 <meta http-equiv="Reply-to" content="magick-users@imagemagick.org"/>
cristy3c98a4f2010-08-13 20:09:41 +000011 <meta name="Application-name" content="ImageMagick"/>
cristydcca3fa2010-12-29 21:50:07 +000012 <meta name="Description" content="ImageMagick is a software suite to create, edit, compose, or convert bitmap images in a variety of formats. Use ImageMagick to scale, rotate, shear, distort and transform images."/>
cristy3c98a4f2010-08-13 20:09:41 +000013 <meta name="Application-url" content="http://www.imagemagick.org"/>
cristy3ed852e2009-09-05 21:47:34 +000014 <meta name="Generator" content="PHP"/>
15 <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"/>
cristy3ed852e2009-09-05 21:47:34 +000016 <meta name="Rating" content="GENERAL"/>
17 <meta name="Robots" content="INDEX, FOLLOW"/>
18 <meta name="Generator" content="ImageMagick Studio LLC"/>
19 <meta name="Author" content="ImageMagick Studio LLC"/>
20 <meta name="Revisit-after" content="2 DAYS"/>
21 <meta name="Resource-type" content="document"/>
cristy4103d562010-12-10 01:38:54 +000022 <meta name="Copyright" content="Copyright (c) 1999-2011 ImageMagick Studio LLC"/>
cristy3ed852e2009-09-05 21:47:34 +000023 <meta name="Distribution" content="Global"/>
cristydcca3fa2010-12-29 21:50:07 +000024 <link rel="icon" href="../../images/wand.png"/>
cristy3c98a4f2010-08-13 20:09:41 +000025 <link rel="shortcut icon" href="../../images/wand.ico" type="images/x-icon"/>
26 <link rel="meta" type="application/rdf+xml" title="ICI" href="http://imagemagick.org/ici.rdf"/>
27 <style type="text/css" media="all">
28 @import url("../../www/magick.css");
29 </style>
cristydcca3fa2010-12-29 21:50:07 +000030 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
31 <script type="text/javascript" src="../fancybox/jquery.fancybox-1.3.4.pack.js"></script>
32 <link rel="stylesheet" type="text/css" href="../fancybox/jquery.fancybox-1.3.4.css" media="screen" />
33 <script type="text/javascript">
34 $(document).ready(function() {
35 $("a[href$=.jpg],a[href$=.png],a[href$=.gif]").fancybox({
36 'transitionIn' : 'elastic',
37 'transitionOut' : 'elastic',
38 'overlayShow' : false,
39 'opacity' : true
40 });
41 });
42 </script>
cristy3eaa0ef2010-03-06 20:35:26 +000043</head>
44
45<body id="www-imagemagick-org">
46<div class="titlebar">
47<a href="../../index.html">
48 <img src="../../images/script.png" alt="[ImageMagick]"
49 style="width: 350px; height: 60px; margin: 28px auto; float: left;" /></a>
50<a href="http://www.networkredux.com">
51 <img src="../../images/networkredux.png" alt="[sponsor]"
52 style="margin: 45px auto; border: 0px; float: left;" /></a>
53<a href="http://www.imagemagick.org/discourse-server/">
54 <img src="../../images/logo.jpg" alt=""
55 style="width: 114px; height: 118px; border: 0px; float: right;" /></a>
56<a href="../../index.html">
57 <img src="../../images/sprite.jpg" alt=""
58 style="width: 114px; height: 118px; border: 0px; float: right;" /></a>
59</div>
60
cristyce69bb02010-07-27 19:49:46 +000061<div class="westbar">
cristy3eaa0ef2010-03-06 20:35:26 +000062
cristy3ed852e2009-09-05 21:47:34 +000063<div class="menu">
cristy83a272e2010-05-07 20:40:35 +000064 <a title="About ImageMagick" href="../../index.html">About ImageMagick</a>
cristy3ed852e2009-09-05 21:47:34 +000065</div>
cristy3eaa0ef2010-03-06 20:35:26 +000066<div class="sep"></div>
cristy3ed852e2009-09-05 21:47:34 +000067<div class="menu">
cristybb503372010-05-27 20:51:26 +000068 <a title="Binary Releases" href="../../www/binary-releases.html">Binary Releases</a>
69</div>
70<div class="sub">
71 <a title="Binary Release: Unix" href="../../www/binary-releases.html#unix">Unix</a>
72</div>
73<div class="sub">
74 <a title="Binary Release: MacOS X" href="../../www/binary-releases.html#macosx">Mac OS X</a>
75</div>
76<div class="sub">
77 <a title="Binary Release: Windows" href="../../www/binary-releases.html#windows">Windows</a>
78</div>
79<div class="sep"></div>
80<div class="menu">
cristy83a272e2010-05-07 20:40:35 +000081 <a title="Command-line Tools" href="../../www/command-line-tools.html">Command-line Tools</a>
cristy3ed852e2009-09-05 21:47:34 +000082</div>
83<div class="sub">
cristy83a272e2010-05-07 20:40:35 +000084 <a title="Command-line Tools: Processing" href="../../www/command-line-processing.html">Processing</a>
cristy3ed852e2009-09-05 21:47:34 +000085</div>
86<div class="sub">
cristy83a272e2010-05-07 20:40:35 +000087 <a title="Command-line Tools: Options" href="../../www/command-line-options.html">Options</a>
cristy3ed852e2009-09-05 21:47:34 +000088</div>
89<div class="sub">
cristy83a272e2010-05-07 20:40:35 +000090 <a title="Command-line Tools: Usage" href="http://www.imagemagick.org/Usage/">Usage</a>
cristy3ed852e2009-09-05 21:47:34 +000091</div>
92<div class="menu">
cristy83a272e2010-05-07 20:40:35 +000093 <a title="Program Interfaces" href="../../www/api.html">Program Interfaces</a>
cristy3ed852e2009-09-05 21:47:34 +000094</div>
95<div class="sub">
cristy83a272e2010-05-07 20:40:35 +000096 <a title="Program Interface: MagickWand" href="../../www/magick-wand.html">MagickWand</a>
cristy3ed852e2009-09-05 21:47:34 +000097</div>
98<div class="sub">
cristy83a272e2010-05-07 20:40:35 +000099 <a title="Program Interface: MagickCore" href="../../www/magick-core.html">MagickCore</a>
cristy3ed852e2009-09-05 21:47:34 +0000100</div>
101<div class="sub">
cristy83a272e2010-05-07 20:40:35 +0000102 <a title="Program Interface: PerlMagick" href="../../www/perl-magick.html">PerlMagick</a>
cristy3ed852e2009-09-05 21:47:34 +0000103</div>
104<div class="sub">
cristydcca3fa2010-12-29 21:50:07 +0000105 <a title="Program Interface: Magick++" href="../../www/magick++.html">Magick++</a>
cristy3ed852e2009-09-05 21:47:34 +0000106</div>
cristy3eaa0ef2010-03-06 20:35:26 +0000107<div class="sep"></div>
cristy3ed852e2009-09-05 21:47:34 +0000108<div class="menu">
cristy83a272e2010-05-07 20:40:35 +0000109 <a title="Install from Source" href="../../www/install-source.html">Install from Source</a>
cristy3ed852e2009-09-05 21:47:34 +0000110</div>
111<div class="sub">
cristy83a272e2010-05-07 20:40:35 +0000112 <a title="Install from Source: Unix" href="../../www/install-source.html#unix">Unix</a>
cristy3ed852e2009-09-05 21:47:34 +0000113</div>
114<div class="sub">
cristy83a272e2010-05-07 20:40:35 +0000115 <a title="Install from Source: Windows" href="../../www/install-source.html#windows">Windows</a>
cristy3ed852e2009-09-05 21:47:34 +0000116 </div>
117<div class="menu">
cristy83a272e2010-05-07 20:40:35 +0000118 <a title="Resources" href="../../www/resources.html">Resources</a>
cristy3ed852e2009-09-05 21:47:34 +0000119</div>
cristybb503372010-05-27 20:51:26 +0000120<div class="menu">
121 <a title="Architecture" href="../../www/architecture.html">Architecture</a>
122</div>
cristy3ed852e2009-09-05 21:47:34 +0000123<div class="menu">
cristy83a272e2010-05-07 20:40:35 +0000124 <a title="Download" href="../../www/download.html">Download</a>
cristy3ed852e2009-09-05 21:47:34 +0000125</div>
cristy3eaa0ef2010-03-06 20:35:26 +0000126<div class="sep"></div>
cristy3ed852e2009-09-05 21:47:34 +0000127<div class="menu">
cristy83a272e2010-05-07 20:40:35 +0000128 <a title="Search" href="../http://www.imagemagick.org/script/search.php">Search</a>
cristy3ed852e2009-09-05 21:47:34 +0000129</div>
cristy3eaa0ef2010-03-06 20:35:26 +0000130<div class="sep"></div>
cristy3ed852e2009-09-05 21:47:34 +0000131<div class="menu">
cristyffb69ed2010-12-25 00:06:48 +0000132 <a title="Site Map" href="../../www/sitemap.html">Site Map</a>
cristy3ed852e2009-09-05 21:47:34 +0000133</div>
134<div class="sub">
cristyffb69ed2010-12-25 00:06:48 +0000135 <a title="Site Map: Links" href="../../www/links.html">Links</a>
cristy3ed852e2009-09-05 21:47:34 +0000136</div>
cristy3eaa0ef2010-03-06 20:35:26 +0000137<div class="sep"></div>
cristy3ed852e2009-09-05 21:47:34 +0000138<div class="menu">
cristy83a272e2010-05-07 20:40:35 +0000139 <a title="Sponsors" href="../../www/sponsors.html">Sponsors:</a>
cristy3ed852e2009-09-05 21:47:34 +0000140
141<div class="sponsbox">
142<div class="sponsor">
cristyffb69ed2010-12-25 00:06:48 +0000143 <a title="Sponsor: alaTest.com" href="http://alatest.com">alaTest.com</a><!-- 20110801000300 -->
cristy5c4585b2010-11-11 00:13:57 +0000144</div>
145<div class="sponsor">
cristy7d52cd62010-10-01 17:26:59 +0000146 <a title="Sponsor: Druckerei" href="http://print24.com/de/">Druckerei</a><!-- 201110010720 -->
cristy73fd1cd2010-09-12 19:14:25 +0000147</div>
148<div class="sponsor">
cristyc5baf4f2010-08-31 15:05:33 +0000149 <a title="Sponsor: Image Converter" href="http://www.batchphoto.com">Image Converter</a><!-- 201103010900 Bits Coffee-->
150</div>
151<div class="sponsor">
cristy851dbce2010-08-06 21:40:00 +0000152 <a title="Sponsor: Flyer drucken" href="http://www.online-druck.biz">Flyer drucken</a><!-- 201109010900 Floeter-->
153</div>
cristy3ed852e2009-09-05 21:47:34 +0000154</div>
155</div>
cristyce69bb02010-07-27 19:49:46 +0000156</div>
cristy3eaa0ef2010-03-06 20:35:26 +0000157
cristyce69bb02010-07-27 19:49:46 +0000158<div class="eastbar">
159 <script type="text/javascript">
160 <!--
161 google_ad_client = "pub-3129977114552745";
cristyce69bb02010-07-27 19:49:46 +0000162 google_ad_slot = "0574824969";
163 google_ad_width = 160;
164 google_ad_height = 600;
165 //-->
166 </script>
167 <script type="text/javascript"
168 src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
169 </script>
cristy3eaa0ef2010-03-06 20:35:26 +0000170</div>
171
172<div class="main">
173
cristy307ba182010-12-25 01:00:34 +0000174<h1>Module compare
175 Methods</h1>
cristy3ed852e2009-09-05 21:47:34 +0000176<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>
177
178<h2><a href="http://www.imagemagick.org/api/MagickCore/compare
179_8c.html" target="source" name="CompareImageChannels">CompareImageChannels</a></h2>
180<div class="doc-section">
181
182<p>CompareImageChannels() compares one or more image channels of an image to a reconstructed image and returns the difference image.</p></ol>
183
184<p>The format of the CompareImageChannels method is:</p>
185
186<pre class="code">
187 Image *CompareImageChannels(const Image *image,
188 const Image *reconstruct_image,const ChannelType channel,
189 const MetricType metric,double *distortion,ExceptionInfo *exception)
190</pre>
191
192<p>A description of each parameter follows:</p></ol>
193
194<h5>image</h5>
195<ol><p>the image.</p></ol>
196
197<h5>reconstruct_image</h5>
198<ol><p>the reconstruct image.</p></ol>
199
200<h5>channel</h5>
201<ol><p>the channel.</p></ol>
202
203<h5>metric</h5>
204<ol><p>the metric.</p></ol>
205
206<h5>distortion</h5>
207<ol><p>the computed distortion between the images.</p></ol>
208
209<h5>exception</h5>
210<ol><p>return any errors or warnings in this structure.</p></ol>
211
212 </div>
213<h2><a href="http://www.imagemagick.org/api/MagickCore/compare
214_8c.html" target="source" name="GetImageChannelDistortion">GetImageChannelDistortion</a></h2>
215<div class="doc-section">
216
217<p>GetImageChannelDistortion() compares one or more image channels of an image to a reconstructed image and returns the specified distortion metric.</p></ol>
218
219<p>The format of the CompareImageChannels method is:</p>
220
221<pre class="code">
222 MagickBooleanType GetImageChannelDistortion(const Image *image,
223 const Image *reconstruct_image,const ChannelType channel,
224 const MetricType metric,double *distortion,ExceptionInfo *exception)
225</pre>
226
227<p>A description of each parameter follows:</p></ol>
228
229<h5>image</h5>
230<ol><p>the image.</p></ol>
231
232<h5>reconstruct_image</h5>
233<ol><p>the reconstruct image.</p></ol>
234
235<h5>channel</h5>
236<ol><p>the channel.</p></ol>
237
238<h5>metric</h5>
239<ol><p>the metric.</p></ol>
240
241<h5>distortion</h5>
242<ol><p>the computed distortion between the images.</p></ol>
243
244<h5>exception</h5>
245<ol><p>return any errors or warnings in this structure.</p></ol>
246
247 </div>
248<h2><a href="http://www.imagemagick.org/api/MagickCore/compare
249_8c.html" target="source" name="GetImageChannelDistrortion">GetImageChannelDistrortion</a></h2>
250<div class="doc-section">
251
252<p>GetImageChannelDistrortion() compares the image channels of an image to a reconstructed image and returns the specified distortion metric for each channel.</p></ol>
253
254<p>The format of the CompareImageChannels method is:</p>
255
256<pre class="code">
257 double *GetImageChannelDistortions(const Image *image,
258 const Image *reconstruct_image,const MetricType metric,
259 ExceptionInfo *exception)
260</pre>
261
262<p>A description of each parameter follows:</p></ol>
263
264<h5>image</h5>
265<ol><p>the image.</p></ol>
266
267<h5>reconstruct_image</h5>
268<ol><p>the reconstruct image.</p></ol>
269
270<h5>metric</h5>
271<ol><p>the metric.</p></ol>
272
273<h5>exception</h5>
274<ol><p>return any errors or warnings in this structure.</p></ol>
275
276 </div>
277<h2><a href="http://www.imagemagick.org/api/MagickCore/compare
278_8c.html" target="source" name="IsImagesEqual">IsImagesEqual</a></h2>
279<div class="doc-section">
280
281<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>
282
283<pre class="text">
284 o mean_error_per_pixel: The mean error for any single pixel in
285 the image.
286</pre>
287
288<h5>normalized_mean_error</h5>
289<ol><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></ol>
290
291<h5>normalized_maximum_error</h5>
292<ol><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></ol>
293
294<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></ol>
295
296<p>The format of the IsImagesEqual method is:</p>
297
298<pre class="code">
299 MagickBooleanType IsImagesEqual(Image *image,
300 const Image *reconstruct_image)
301</pre>
302
303<p>A description of each parameter follows.</p></ol>
304
305<h5>image</h5>
306<ol><p>the image.</p></ol>
307
308<h5>reconstruct_image</h5>
309<ol><p>the reconstruct image.</p></ol>
310
311 </div>
312<h2><a href="http://www.imagemagick.org/api/MagickCore/compare
313_8c.html" target="source" name="SimilarityImage">SimilarityImage</a></h2>
314<div class="doc-section">
315
316<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></ol>
317
318<p>The format of the SimilarityImageImage method is:</p>
319
320<pre class="code">
321 Image *SimilarityImage(const Image *image,const Image *reference,
322 RectangleInfo *offset,double *similarity,ExceptionInfo *exception)
323</pre>
324
325<p>A description of each parameter follows:</p></ol>
326
327<h5>image</h5>
328<ol><p>the image.</p></ol>
329
330<h5>reference</h5>
331<ol><p>find an area of the image that closely resembles this image.</p></ol>
332
333<p>o the best match offset of the reference image within the image.</p></ol>
334
335<h5>similarity</h5>
336<ol><p>the computed similarity between the images.</p></ol>
337
338<h5>exception</h5>
339<ol><p>return any errors or warnings in this structure.</p></ol>
340
341 </div>
cristy3eaa0ef2010-03-06 20:35:26 +0000342
343</div>
344
345<div id="linkbar">
cristyce69bb02010-07-27 19:49:46 +0000346 <span id="linkbar-west">&nbsp;</span>
cristy3eaa0ef2010-03-06 20:35:26 +0000347 <span id="linkbar-center">
348 <a href="http://www.imagemagick.org/discourse-server/">Discourse Server</a> &bull;
cristya8902942010-07-30 00:49:52 +0000349 <a href="http://www.imagemagick.org/MagickStudio/scripts/MagickStudio.cgi">Studio</a>
cristy3eaa0ef2010-03-06 20:35:26 +0000350 </span>
351 <span id="linkbar-east">&nbsp;</span>
352 </div>
353 <div class="footer">
cristy4103d562010-12-10 01:38:54 +0000354 <span id="footer-west">&copy; 1999-2011 ImageMagick Studio LLC</span>
cristy3eaa0ef2010-03-06 20:35:26 +0000355 <span id="footer-east"> <a href="../http://www.imagemagick.org/script/contact.php">Contact the Wizards</a></span>
356 </div>
357 <div style="clear: both; margin: 0; width: 100%; "></div>
cristya8902942010-07-30 00:49:52 +0000358 <script type="text/javascript">
359 var _gaq = _gaq || [];
360 _gaq.push(['_setAccount', 'UA-17690367-1']);
361 _gaq.push(['_trackPageview']);
362
363 (function() {
364 var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
365 ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
366 var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
367 })();
368 </script>
cristy3eaa0ef2010-03-06 20:35:26 +0000369</body>
370</html>