• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1
2
3
4
5<!doctype html>
6<html lang="en">
7<head>
8  <meta charset="utf-8"  />
9  <meta name="viewport" content="width=device-width, initial-scale=1"  />
10  <title>ImageMagick - MagickCore, C API: Image Statistics</title>
11  <meta name="application-name" content="ImageMagick" />
12  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert digital images. Resize an image, crop it, change its shades and colors, add captions, and more." />
13  <meta name="application-url" content="https://imagemagick.org" />
14  <meta name="generator" content="PHP" />
15  <meta name="keywords" content="magickcore, c, api:, image, statistics, image processing software" />
16  <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" />
22  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
23  <meta name="distribution" content="Global" />
24  <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
25  <meta property='og:url' content='../../' />
26  <meta property='og:title' content='ImageMagick' />
27  <meta property='og:image' content='../../../images/logo.png' />
28  <meta property='og:type' content='website' />
29  <meta property='og:site_name' content='ImageMagick' />
30  <meta property='og:description' content="Create, Edit, Compose, or Convert Digital Images" />
31  <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
32  <link href="statistic.html" rel="canonical" />
33  <link href="../../../images/wand.png" rel="icon" />
34  <link href="../../../images/wand.ico" rel="shortcut icon" />
35  <link href="../../assets/magick.css" rel="stylesheet" />
36</head>
37<body>
38  <nav class="navbar navbar-expand-md navbar-dark bg-dark fixed-top">
39  <div class="container-fluid">
40    <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../../images/wand.ico"/></a>
41    <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#magick-navbars" aria-controls="magick-navbars" aria-expanded="false" aria-label="Toggle navigation">
42      <span class="navbar-toggler-icon"></span>
43    </button>
44
45    <div class="collapse navbar-collapse" id="magick-navbars">
46      <ul class="navbar-nav me-auto mb-2 mb-md-0">
47        <li class="nav-item">
48          <a class="nav-link " href="../../www/index.html">Home</a>
49        </li>
50        <li class="nav-item">
51          <a class="nav-link " href="../../www/download.html">Download</a>
52        </li>
53        <li class="nav-item">
54          <a class="nav-link " href="../../www/command-line-tools.html">Tools</a>
55        </li>
56        <li class="nav-item">
57          <a class="nav-link " href="../../www/command-line-processing.html">CLI</a>
58        </li>
59        <li class="nav-item">
60          <a class="nav-link " href="../../www/develop.html">Develop</a>
61        </li>
62        <li class="nav-item">
63          <a class="nav-link" target="_blank" href="https://github.com/ImageMagick/ImageMagick/discussions">Community</a>
64        </li>
65        <li class="nav-item">
66          <iframe src="https://github.com/sponsors/ImageMagick/button" title="Sponsor ImageMagick" height="35" width="107" style="border: 0;"></iframe>
67        </li>
68      </ul>
69      <form class="d-flex form-inline" action="https://imagemagick.org/script/search.php">
70        <input class="form-control me-2" type="text" name="q" placeholder="Search" aria-label="Search">
71        <button class="btn btn-outline-success" type="submit" name="sa">Search</button>
72      </form>
73    </div>
74  </div>
75  </nav>
76
77  <div class="container">
78    <script async="async" src="https://localhost/pagead/js/adsbygoogle.js"></script>
79    <ins class="adsbygoogle"
80      style="display:block"
81      data-ad-client="ca-pub-3129977114552745"
82      data-ad-slot="6345125851"
83      data-full-width-responsive="true"
84      data-ad-format="horizontal"></ins>
85    <script>
86      (adsbygoogle = window.adsbygoogle || []).push({});
87    </script>
88
89  </div>
90
91  <main class="container">
92  <div class="magick-template">
93<div class="magick-header">
94<p class="text-center"><a href="statistic.html#EvaluateImage">EvaluateImage</a> &#8226; <a href="statistic.html#FunctionImage">FunctionImage</a> &#8226; <a href="statistic.html#GetImageEntropy">GetImageEntropy</a> &#8226; <a href="statistic.html#GetImageExtrema">GetImageExtrema</a> &#8226; <a href="statistic.html#GetImageKurtosis">GetImageKurtosis</a> &#8226; <a href="statistic.html#GetImageMean">GetImageMean</a> &#8226; <a href="statistic.html#GetImageMedian">GetImageMedian</a> &#8226; <a href="statistic.html#GetImageMoments">GetImageMoments</a> &#8226; <a href="statistic.html#GetImagePerceptualHash">GetImagePerceptualHash</a> &#8226; <a href="statistic.html#GetImageRange">GetImageRange</a> &#8226; <a href="statistic.html#GetImageStatistics">GetImageStatistics</a> &#8226; <a href="statistic.html#PolynomialImage">PolynomialImage</a> &#8226; <a href="statistic.html#StatisticImage">StatisticImage</a></p>
95
96<h2><a href="../../api/MagickCore/statistic_8c.html" id="EvaluateImage">EvaluateImage</a></h2>
97
98<p>EvaluateImage() applies a value to the image with an arithmetic, relational, or logical operator to an image. Use these operations to lighten or darken an image, to increase or decrease contrast in an image, or to produce the "negative" of an image.</p>
99
100<p>The format of the EvaluateImage method is:</p>
101
102<pre class="text">
103MagickBooleanType EvaluateImage(Image *image,
104  const MagickEvaluateOperator op,const double value,
105  ExceptionInfo *exception)
106MagickBooleanType EvaluateImages(Image *images,
107  const MagickEvaluateOperator op,const double value,
108  ExceptionInfo *exception)
109</pre>
110
111<p>A description of each parameter follows:</p>
112
113<dd>
114</dd>
115
116<dd> </dd>
117<dl class="dl-horizontal">
118<dt>image</dt>
119<dd>the image. </dd>
120
121<dd> </dd>
122<dt>op</dt>
123<dd>A channel op. </dd>
124
125<dd> </dd>
126<dt>value</dt>
127<dd>A value value. </dd>
128
129<dd> </dd>
130<dt>exception</dt>
131<dd>return any errors or warnings in this structure. </dd>
132
133<dd>  </dd>
134</dl>
135<h2><a href="../../api/MagickCore/statistic_8c.html" id="FunctionImage">FunctionImage</a></h2>
136
137<p>FunctionImage() applies a value to the image with an arithmetic, relational, or logical operator to an image. Use these operations to lighten or darken an image, to increase or decrease contrast in an image, or to produce the "negative" of an image.</p>
138
139<p>The format of the FunctionImage method is:</p>
140
141<pre class="text">
142MagickBooleanType FunctionImage(Image *image,
143  const MagickFunction function,const ssize_t number_parameters,
144  const double *parameters,ExceptionInfo *exception)
145</pre>
146
147<p>A description of each parameter follows:</p>
148
149<dd>
150</dd>
151
152<dd> </dd>
153<dl class="dl-horizontal">
154<dt>image</dt>
155<dd>the image. </dd>
156
157<dd> </dd>
158<dt>function</dt>
159<dd>A channel function. </dd>
160
161<dd> </dd>
162<dt>parameters</dt>
163<dd>one or more parameters. </dd>
164
165<dd> </dd>
166<dt>exception</dt>
167<dd>return any errors or warnings in this structure. </dd>
168
169<dd>  </dd>
170</dl>
171<h2><a href="../../api/MagickCore/statistic_8c.html" id="GetImageEntropy">GetImageEntropy</a></h2>
172
173<p>GetImageEntropy() returns the entropy of one or more image channels.</p>
174
175<p>The format of the GetImageEntropy method is:</p>
176
177<pre class="text">
178MagickBooleanType GetImageEntropy(const Image *image,double *entropy,
179  ExceptionInfo *exception)
180</pre>
181
182<p>A description of each parameter follows:</p>
183
184<dd>
185</dd>
186
187<dd> </dd>
188<dl class="dl-horizontal">
189<dt>image</dt>
190<dd>the image. </dd>
191
192<dd> </dd>
193<dt>entropy</dt>
194<dd>the average entropy of the selected channels. </dd>
195
196<dd> </dd>
197<dt>exception</dt>
198<dd>return any errors or warnings in this structure. </dd>
199
200<dd>  </dd>
201</dl>
202<h2><a href="../../api/MagickCore/statistic_8c.html" id="GetImageExtrema">GetImageExtrema</a></h2>
203
204<p>GetImageExtrema() returns the extrema of one or more image channels.</p>
205
206<p>The format of the GetImageExtrema method is:</p>
207
208<pre class="text">
209MagickBooleanType GetImageExtrema(const Image *image,size_t *minima,
210  size_t *maxima,ExceptionInfo *exception)
211</pre>
212
213<p>A description of each parameter follows:</p>
214
215<dd>
216</dd>
217
218<dd> </dd>
219<dl class="dl-horizontal">
220<dt>image</dt>
221<dd>the image. </dd>
222
223<dd> </dd>
224<dt>minima</dt>
225<dd>the minimum value in the channel. </dd>
226
227<dd> </dd>
228<dt>maxima</dt>
229<dd>the maximum value in the channel. </dd>
230
231<dd> </dd>
232<dt>exception</dt>
233<dd>return any errors or warnings in this structure. </dd>
234
235<dd>  </dd>
236</dl>
237<h2><a href="../../api/MagickCore/statistic_8c.html" id="GetImageKurtosis">GetImageKurtosis</a></h2>
238
239<p>GetImageKurtosis() returns the kurtosis and skewness of one or more image channels.</p>
240
241<p>The format of the GetImageKurtosis method is:</p>
242
243<pre class="text">
244MagickBooleanType GetImageKurtosis(const Image *image,double *kurtosis,
245  double *skewness,ExceptionInfo *exception)
246</pre>
247
248<p>A description of each parameter follows:</p>
249
250<dd>
251</dd>
252
253<dd> </dd>
254<dl class="dl-horizontal">
255<dt>image</dt>
256<dd>the image. </dd>
257
258<dd> </dd>
259<dt>kurtosis</dt>
260<dd>the kurtosis of the channel. </dd>
261
262<dd> </dd>
263<dt>skewness</dt>
264<dd>the skewness of the channel. </dd>
265
266<dd> </dd>
267<dt>exception</dt>
268<dd>return any errors or warnings in this structure. </dd>
269
270<dd>  </dd>
271</dl>
272<h2><a href="../../api/MagickCore/statistic_8c.html" id="GetImageMean">GetImageMean</a></h2>
273
274<p>GetImageMean() returns the mean and standard deviation of one or more image channels.</p>
275
276<p>The format of the GetImageMean method is:</p>
277
278<pre class="text">
279MagickBooleanType GetImageMean(const Image *image,double *mean,
280  double *standard_deviation,ExceptionInfo *exception)
281</pre>
282
283<p>A description of each parameter follows:</p>
284
285<dd>
286</dd>
287
288<dd> </dd>
289<dl class="dl-horizontal">
290<dt>image</dt>
291<dd>the image. </dd>
292
293<dd> </dd>
294<dt>mean</dt>
295<dd>the average value in the channel. </dd>
296
297<dd> </dd>
298<dt>standard_deviation</dt>
299<dd>the standard deviation of the channel. </dd>
300
301<dd> </dd>
302<dt>exception</dt>
303<dd>return any errors or warnings in this structure. </dd>
304
305<dd>  </dd>
306</dl>
307<h2><a href="../../api/MagickCore/statistic_8c.html" id="GetImageMedian">GetImageMedian</a></h2>
308
309<p>GetImageMedian() returns the median pixel of one or more image channels.</p>
310
311<p>The format of the GetImageMedian method is:</p>
312
313<pre class="text">
314MagickBooleanType GetImageMedian(const Image *image,double *median,
315  ExceptionInfo *exception)
316</pre>
317
318<p>A description of each parameter follows:</p>
319
320<dd>
321</dd>
322
323<dd> </dd>
324<dl class="dl-horizontal">
325<dt>image</dt>
326<dd>the image. </dd>
327
328<dd> </dd>
329<dt>median</dt>
330<dd>the average value in the channel. </dd>
331
332<dd> </dd>
333<dt>exception</dt>
334<dd>return any errors or warnings in this structure. </dd>
335
336<dd>  </dd>
337</dl>
338<h2><a href="../../api/MagickCore/statistic_8c.html" id="GetImageMoments">GetImageMoments</a></h2>
339
340<p>GetImageMoments() returns the normalized moments of one or more image channels.</p>
341
342<p>The format of the GetImageMoments method is:</p>
343
344<pre class="text">
345ChannelMoments *GetImageMoments(const Image *image,
346  ExceptionInfo *exception)
347</pre>
348
349<p>A description of each parameter follows:</p>
350
351<dd>
352</dd>
353
354<dd> </dd>
355<dl class="dl-horizontal">
356<dt>image</dt>
357<dd>the image. </dd>
358
359<dd> </dd>
360<dt>exception</dt>
361<dd>return any errors or warnings in this structure. </dd>
362
363<dd>  </dd>
364</dl>
365<h2><a href="../../api/MagickCore/statistic_8c.html" id="GetImagePerceptualHash">GetImagePerceptualHash</a></h2>
366
367<p>GetImagePerceptualHash() returns the perceptual hash of one or more image channels.</p>
368
369<p>The format of the GetImagePerceptualHash method is:</p>
370
371<pre class="text">
372ChannelPerceptualHash *GetImagePerceptualHash(const Image *image,
373  ExceptionInfo *exception)
374</pre>
375
376<p>A description of each parameter follows:</p>
377
378<dd>
379</dd>
380
381<dd> </dd>
382<dl class="dl-horizontal">
383<dt>image</dt>
384<dd>the image. </dd>
385
386<dd> </dd>
387<dt>exception</dt>
388<dd>return any errors or warnings in this structure. </dd>
389
390<dd>  </dd>
391</dl>
392<h2><a href="../../api/MagickCore/statistic_8c.html" id="GetImageRange">GetImageRange</a></h2>
393
394<p>GetImageRange() returns the range of one or more image channels.</p>
395
396<p>The format of the GetImageRange method is:</p>
397
398<pre class="text">
399MagickBooleanType GetImageRange(const Image *image,double *minima,
400  double *maxima,ExceptionInfo *exception)
401</pre>
402
403<p>A description of each parameter follows:</p>
404
405<dd>
406</dd>
407
408<dd> </dd>
409<dl class="dl-horizontal">
410<dt>image</dt>
411<dd>the image. </dd>
412
413<dd> </dd>
414<dt>minima</dt>
415<dd>the minimum value in the channel. </dd>
416
417<dd> </dd>
418<dt>maxima</dt>
419<dd>the maximum value in the channel. </dd>
420
421<dd> </dd>
422<dt>exception</dt>
423<dd>return any errors or warnings in this structure. </dd>
424
425<dd>  </dd>
426</dl>
427<h2><a href="../../api/MagickCore/statistic_8c.html" id="GetImageStatistics">GetImageStatistics</a></h2>
428
429<p>GetImageStatistics() returns statistics for each channel in the image.  The statistics include the channel depth, its minima, maxima, mean, standard deviation, kurtosis and skewness.  You can access the red channel mean, for example, like this:</p>
430
431<pre class="text">
432channel_statistics=GetImageStatistics(image,exception);
433red_mean=channel_statistics[RedPixelChannel].mean;
434</pre>
435
436<p>Use MagickRelinquishMemory() to free the statistics buffer.</p>
437
438<p>The format of the GetImageStatistics method is:</p>
439
440<pre class="text">
441ChannelStatistics *GetImageStatistics(const Image *image,
442  ExceptionInfo *exception)
443</pre>
444
445<p>A description of each parameter follows:</p>
446
447<dd>
448</dd>
449
450<dd> </dd>
451<dl class="dl-horizontal">
452<dt>image</dt>
453<dd>the image. </dd>
454
455<dd> </dd>
456<dt>exception</dt>
457<dd>return any errors or warnings in this structure. </dd>
458
459<dd>  </dd>
460</dl>
461<h2><a href="../../api/MagickCore/statistic_8c.html" id="PolynomialImage">PolynomialImage</a></h2>
462
463<p>PolynomialImage() returns a new image where each pixel is the sum of the pixels in the image sequence after applying its corresponding terms (coefficient and degree pairs).</p>
464
465<p>The format of the PolynomialImage method is:</p>
466
467<pre class="text">
468Image *PolynomialImage(const Image *images,const size_t number_terms,
469  const double *terms,ExceptionInfo *exception)
470</pre>
471
472<p>A description of each parameter follows:</p>
473
474<dd>
475</dd>
476
477<dd> </dd>
478<dl class="dl-horizontal">
479<dt>images</dt>
480<dd>the image sequence. </dd>
481
482<dd> </dd>
483<dt>number_terms</dt>
484<dd>the number of terms in the list.  The actual list length is 2 x number_terms + 1 (the constant). </dd>
485
486<dd> </dd>
487<dt>terms</dt>
488<dd>the list of polynomial coefficients and degree pairs and a constant. </dd>
489
490<dd> </dd>
491<dt>exception</dt>
492<dd>return any errors or warnings in this structure. </dd>
493
494<dd>  </dd>
495</dl>
496<h2><a href="../../api/MagickCore/statistic_8c.html" id="StatisticImage">StatisticImage</a></h2>
497
498<p>StatisticImage() makes each pixel the min / max / median / mode / etc. of the neighborhood of the specified width and height.</p>
499
500<p>The format of the StatisticImage method is:</p>
501
502<pre class="text">
503Image *StatisticImage(const Image *image,const StatisticType type,
504  const size_t width,const size_t height,ExceptionInfo *exception)
505</pre>
506
507<p>A description of each parameter follows:</p>
508
509<dd>
510</dd>
511
512<dd> </dd>
513<dl class="dl-horizontal">
514<dt>image</dt>
515<dd>the image. </dd>
516
517<dd> </dd>
518<dt>type</dt>
519<dd>the statistic type (median, mode, etc.). </dd>
520
521<dd> </dd>
522<dt>width</dt>
523<dd>the width of the pixel neighborhood. </dd>
524
525<dd> </dd>
526<dt>height</dt>
527<dd>the height of the pixel neighborhood. </dd>
528
529<dd> </dd>
530<dt>exception</dt>
531<dd>return any errors or warnings in this structure. </dd>
532
533<dd>  </dd>
534</dl>
535</div>
536  </div>
537  </main><!-- /.container -->
538  <footer class="magick-footer">
539    <div class="container-fluid">
540      <a href="../../www/security-policy.html">Security</a> •
541      <a href="../../www/news.html">News</a>
542
543      <a href="statistic.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../../images/wand.ico"/></a>
544
545      <a href="../../www/links.html">Related</a> •
546      <a href="../../www/sitemap.html">Sitemap</a>
547   <br/>
548     <a href="../../www/support.html">Sponsor</a> •
549     <a href="../../www/cite.html">Cite</a> •
550     <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
551     <a href="../../www/contact.html">Contact Us</a>
552   <br/>
553     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
554     <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
555    <br/>
556    <small>© 1999-2021 ImageMagick Studio LLC</small>
557    </div>
558  </footer>
559
560  <!-- Javascript assets -->
561  <script src="../../assets/magick.js" ></script>
562  </body>
563</html>
564