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> • <a href="statistic.html#FunctionImage">FunctionImage</a> • <a href="statistic.html#GetImageEntropy">GetImageEntropy</a> • <a href="statistic.html#GetImageExtrema">GetImageExtrema</a> • <a href="statistic.html#GetImageKurtosis">GetImageKurtosis</a> • <a href="statistic.html#GetImageMean">GetImageMean</a> • <a href="statistic.html#GetImageMedian">GetImageMedian</a> • <a href="statistic.html#GetImageMoments">GetImageMoments</a> • <a href="statistic.html#GetImagePerceptualHash">GetImagePerceptualHash</a> • <a href="statistic.html#GetImageRange">GetImageRange</a> • <a href="statistic.html#GetImageStatistics">GetImageStatistics</a> • <a href="statistic.html#PolynomialImage">PolynomialImage</a> • <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&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