Home | History | Annotate | Download | only in api
      1 
      2 
      3 
      4 
      5 <!DOCTYPE html>
      6 <html lang="en">
      7 <head>
      8     <title>ImageMagick: MagickCore, C API for ImageMagick: Image Features</title>
      9   <meta charset="utf-8" />
     10   <meta http-equiv="X-UA-Compatible" content="IE=edge" />
     11   <meta name="viewport" content="width=device-width, initial-scale=1" />
     12   <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
     13   <meta name="application-name" content="ImageMagick"/>
     14   <meta name="description" content="ImageMagick is a software suite to create, edit, compose, or convert bitmap images. It can read and write images in a variety of formats (over 200) including PNG, JPEG, JPEG-2000, GIF, WebP, Postscript, PDF, and SVG. Use ImageMagick to resize, flip, mirror, rotate, distort, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and Bzier curves."/>
     15   <meta name="application-url" content="http://www.imagemagick.org"/>
     16   <meta name="generator" content="PHP"/>
     17   <meta name="keywords" content="magickcore, c, api, for, imagemagick:, image, features, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert"/>
     18   <meta name="rating" content="GENERAL"/>
     19   <meta name="robots" content="INDEX, FOLLOW"/>
     20   <meta name="generator" content="ImageMagick Studio LLC"/>
     21   <meta name="author" content="ImageMagick Studio LLC"/>
     22   <meta name="revisit-after" content="2 DAYS"/>
     23   <meta name="resource-type" content="document"/>
     24   <meta name="copyright" content="Copyright (c) 1999-2016 ImageMagick Studio LLC"/>
     25   <meta name="distribution" content="Global"/>
     26   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1"/>
     27   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
     28   <link rel="icon" href="../images/wand.png"/>
     29   <link rel="shortcut icon" href="../images/wand.ico"/>
     30   <link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Roboto:900,400,400italic,700,700italic,300,300italic|Open+Sans:300italic,400italic,700italic,300,400,600,700">
     31   <link rel="stylesheet" href="../css/magick.html"/>
     32 </head>
     33 <body>
     34 <div class="main">
     35 <div class="magick-masthead">
     36   <div class="container">
     37     <script async="async" src="http://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
     38          style="display:block"
     39          data-ad-client="ca-pub-3129977114552745"
     40          data-ad-slot="6345125851"
     41          data-ad-format="auto"></ins>
     42     <script>
     43       (adsbygoogle = window.adsbygoogle || []).push({});
     44     </script>
     45     <nav class="magick-nav">
     46       <a class="magick-nav-item " href="../index.html">Home</a>
     47       <a class="magick-nav-item " href="../binary-releases.html">Download</a>
     48       <a class="magick-nav-item " href="../command-line-tools.html">Tools</a>
     49       <a class="magick-nav-item " href="../command-line-processing.html">Command-line</a>
     50       <a class="magick-nav-item " href="../resources.html">Resources</a>
     51       <a class="magick-nav-item " href="api.html">Develop</a>
     52       <a class="magick-nav-item " href="http://www.imagemagick.org/script/search.php">Search</a>
     53       <a class="magick-nav-item pull-right" href="https://www.imagemagick.org/discourse-server/">Community</a>
     54     </nav>
     55   </div>
     56 </div>
     57 <div class="container">
     58 <div class="magick-header">
     59 <p class="text-center"><a href="feature.html#CannyEdgeImage">CannyEdgeImage</a> &#8226; <a href="feature.html#GetImageFeatures">GetImageFeatures</a> &#8226; <a href="feature.html#Use HoughLineImage">Use HoughLineImage</a> &#8226; <a href="feature.html#MeanShiftImage">MeanShiftImage</a></p>
     60 
     61 <h2><a href="http://www.imagemagick.org/api/MagickCore/feature_8c.html" id="CannyEdgeImage">CannyEdgeImage</a></h2>
     62 
     63 <p>CannyEdgeImage() uses a multi-stage algorithm to detect a wide range of edges in images.</p>
     64 
     65 <p>The format of the CannyEdgeImage method is:</p>
     66 
     67 <pre class="text">
     68 Image *CannyEdgeImage(const Image *image,const double radius,
     69   const double sigma,const double lower_percent,
     70   const double upper_percent,ExceptionInfo *exception)
     71 </pre>
     72 
     73 <p>A description of each parameter follows:</p>
     74 
     75 <dd>
     76 </dd>
     77 
     78 <dd> </dd>
     79 <dl class="dl-horizontal">
     80 <dt>image</dt>
     81 <dd>the image. </dd>
     82 
     83 <dd> </dd>
     84 <dt>radius</dt>
     85 <dd>the radius of the gaussian smoothing filter. </dd>
     86 
     87 <dd> </dd>
     88 <dt>sigma</dt>
     89 <dd>the sigma of the gaussian smoothing filter. </dd>
     90 
     91 <dd> </dd>
     92 <dt>lower_precent</dt>
     93 <dd>percentage of edge pixels in the lower threshold. </dd>
     94 
     95 <dd> </dd>
     96 <dt>upper_percent</dt>
     97 <dd>percentage of edge pixels in the upper threshold. </dd>
     98 
     99 <dd> </dd>
    100 <dt>exception</dt>
    101 <dd>return any errors or warnings in this structure. </dd>
    102 
    103 <dd>  </dd>
    104 </dl>
    105 <h2><a href="http://www.imagemagick.org/api/MagickCore/feature_8c.html" id="GetImageFeatures">GetImageFeatures</a></h2>
    106 
    107 <p>GetImageFeatures() returns features for each channel in the image in each of four directions (horizontal, vertical, left and right diagonals) for the specified distance.  The features include the angular second moment, contrast, correlation, sum of squares: variance, inverse difference moment, sum average, sum varience, sum entropy, entropy, difference variance,  difference entropy, information measures of correlation 1, information measures of correlation 2, and maximum correlation coefficient.  You can access the red channel contrast, for example, like this:</p>
    108 
    109 <pre class="text">
    110 channel_features=GetImageFeatures(image,1,exception);
    111 contrast=channel_features[RedPixelChannel].contrast[0];
    112 </pre>
    113 
    114 <p>Use MagickRelinquishMemory() to free the features buffer.</p>
    115 
    116 <p>The format of the GetImageFeatures method is:</p>
    117 
    118 <pre class="text">
    119 ChannelFeatures *GetImageFeatures(const Image *image,
    120   const size_t distance,ExceptionInfo *exception)
    121 </pre>
    122 
    123 <p>A description of each parameter follows:</p>
    124 
    125 <dd>
    126 </dd>
    127 
    128 <dd> </dd>
    129 <dl class="dl-horizontal">
    130 <dt>image</dt>
    131 <dd>the image. </dd>
    132 
    133 <dd> </dd>
    134 <dt>distance</dt>
    135 <dd>the distance. </dd>
    136 
    137 <dd> </dd>
    138 <dt>exception</dt>
    139 <dd>return any errors or warnings in this structure. </dd>
    140 
    141 <dd>  </dd>
    142 </dl>
    143 <h2><a href="http://www.imagemagick.org/api/MagickCore/feature_8c.html" id="Use_HoughLineImage">Use HoughLineImage</a></h2>
    144 
    145 <p>Use HoughLineImage() in conjunction with any binary edge extracted image (we recommand Canny) to identify lines in the image.  The algorithm accumulates counts for every white pixel for every possible orientation (for angles from 0 to 179 in 1 degree increments) and distance from the center of the image to the corner (in 1 px increments) and stores the counts in an accumulator matrix of angle vs distance. The size of the accumulator is 180x(diagonal/2). Next it searches this space for peaks in counts and converts the locations of the peaks to slope and intercept in the normal x,y input image space. Use the slope/intercepts to find the endpoints clipped to the bounds of the image. The lines are then drawn. The counts are a measure of the length of the lines</p>
    146 
    147 <p>The format of the HoughLineImage method is:</p>
    148 
    149 <pre class="text">
    150 Image *HoughLineImage(const Image *image,const size_t width,
    151   const size_t height,const size_t threshold,ExceptionInfo *exception)
    152 </pre>
    153 
    154 <p>A description of each parameter follows:</p>
    155 
    156 <dd>
    157 </dd>
    158 
    159 <dd> </dd>
    160 <dl class="dl-horizontal">
    161 <dt>image</dt>
    162 <dd>the image. </dd>
    163 
    164 <dd> </dd>
    165 <dt>width, height</dt>
    166 <dd>find line pairs as local maxima in this neighborhood. </dd>
    167 
    168 <dd> </dd>
    169 <dt>threshold</dt>
    170 <dd>the line count threshold. </dd>
    171 
    172 <dd> </dd>
    173 <dt>exception</dt>
    174 <dd>return any errors or warnings in this structure. </dd>
    175 
    176 <dd>  </dd>
    177 </dl>
    178 <h2><a href="http://www.imagemagick.org/api/MagickCore/feature_8c.html" id="MeanShiftImage">MeanShiftImage</a></h2>
    179 
    180 <p>MeanShiftImage() delineate arbitrarily shaped clusters in the image. For each pixel, it visits all the pixels in the neighborhood specified by the window centered at the pixel and excludes those that are outside the radius=(window-1)/2 surrounding the pixel. From those pixels, it finds those that are within the specified color distance from the current mean, and computes a new x,y centroid from those coordinates and a new mean. This new x,y centroid is used as the center for a new window. This process iterates until it converges and the final mean is replaces the (original window center) pixel value. It repeats this process for the next pixel, etc., until it processes all pixels in the image. Results are typically better with colorspaces other than sRGB. We recommend YIQ, YUV or YCbCr.</p>
    181 
    182 <p>The format of the MeanShiftImage method is:</p>
    183 
    184 <pre class="text">
    185 Image *MeanShiftImage(const Image *image,const size_t width,
    186   const size_t height,const double color_distance,
    187   ExceptionInfo *exception)
    188 </pre>
    189 
    190 <p>A description of each parameter follows:</p>
    191 
    192 <dd>
    193 </dd>
    194 
    195 <dd> </dd>
    196 <dl class="dl-horizontal">
    197 <dt>image</dt>
    198 <dd>the image. </dd>
    199 
    200 <dd> </dd>
    201 <dt>width, height</dt>
    202 <dd>find pixels in this neighborhood. </dd>
    203 
    204 <dd> </dd>
    205 <dt>color_distance</dt>
    206 <dd>the color distance. </dd>
    207 
    208 <dd> </dd>
    209 <dt>exception</dt>
    210 <dd>return any errors or warnings in this structure. </dd>
    211 
    212 <dd>  </dd>
    213 </dl>
    214 </div>
    215   <footer class="magick-footer">
    216     <p><a href="../support.html">Donate</a> 
    217      <a href="../sitemap.html">Sitemap</a> 
    218     <a href="../links.html">Related</a> 
    219     <a href="../architecture.html">Architecture</a>
    220 </p>
    221     <p><a href="feature.html#">Back to top</a> 
    222     <a href="http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x89AB63D48277377A">Public Key</a> 
    223     <a href="http://www.imagemagick.org/script/contact.php">Contact Us</a></p>
    224         <p><small>  1999-2016 ImageMagick Studio LLC</small></p>
    225   </footer>
    226 </div><!-- /.container -->
    227 
    228   <script src="https://localhost/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
    229   <script src="../js/magick.html"></script>
    230 </div>
    231 </body>
    232 </html>
    233