1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161
|
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Connected Components Labeling</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
<meta name="application-url" content="https://legacy.imagemagick.org" />
<meta name="generator" content="PHP" />
<meta name="keywords" content="connected, components, labeling, image converter, image resizer, image editor, photo editor, jpg converter, png converter, tiff converter, vector images, online, free, swiss army" />
<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-2020 ImageMagick Studio LLC" />
<meta name="distribution" content="Global" />
<meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
<meta property='og:url' content='https://legacy.imagemagick.org/' />
<meta property='og:title' content='ImageMagick Legacy' />
<meta property='og:image' content='https://legacy.imagemagick.org/images/logo.png' />
<meta property='og:type' content='website' />
<meta property='og:site_name' content='ImageMagick Legacy' />
<meta property='og:description' content="Create, Edit, Compose, or Convert Bitmap Images" />
<meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
<meta name="msvalidate.01" content="103012B23499FEB70AEA89C83C274AC7" />
<link href="connected-components.html" rel="canonical" />
<link href="../images/wand.png" rel="icon" />
<link href="../images/wand.ico" rel="shortcut icon" />
<link href="assets/magick.css" rel="stylesheet" />
</head>
<body>
<nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
<a class="navbar-brand" href="../index.html"><img class="d-block" id="wand" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="navbar-collapse collapse" id="navbarsMagick" style="">
<ul class="navbar-nav mr-auto">
<li class="nav-item ">
<a class="nav-link" href="../index.html">Home <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item ">
<a class="nav-link" href="download.html">Download</a>
</li>
<li class="nav-item ">
<a class="nav-link" href="command-line-tools.html">Tools</a>
</li>
<li class="nav-item ">
<a class="nav-link" href="command-line-processing.html">Command-line</a>
</li>
<li class="nav-item ">
<a class="nav-link" href="develop.html">Develop</a>
</li>
<li class="nav-item">
<a class="nav-link" target="_blank" href="https://github.com/ImageMagick/ImageMagick6/discussions">Community</a>
</li>
<li class="nav-item">
<iframe src="https://github.com/sponsors/ImageMagick/button" title="Sponsor ImageMagick" height="35" width="107" style="border: 0;"></iframe>
</li>
</ul>
</div>
<form class="form-inline my-2 my-lg-0" action="https://legacy.imagemagick.org/script/search.php">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search" />
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
</nav>
<div role="main" class="container">
<script async="async" src="https://localhost/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle"
style="display:block"
data-ad-client="ca-pub-3129977114552745"
data-ad-slot="6345125851"
data-full-width-responsive="true"
data-ad-format="horizontal"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</div>
<main class="container">
<div class="magick-template">
<div class="magick-header">
<h1 class="text-center">Uniquely Label Connected Regions</h1>
<p class="lead magick-description">Connected-component labeling (alternatively connected-component analysis, blob extraction, region labeling, blob discovery, or region extraction) uniquely labels connected components in an image. The labeling process scans the image, pixel-by-pixel from top-left to bottom-right, in order to identify connected pixel regions, i.e. regions of adjacent pixels which share the same set of intensity values. For example, let's find the objects in this image:</p>
<ul>
<a href="../images/objects.gif"><img src="../images/objects.gif" width="256" height="171" class="image-slices" alt="purse" /></a>
</ul>
<p>To identify the objects in this image, use this command:</p>
<ul><pre class="highlight"><code>convert objects.gif -connected-components 4 -auto-level -depth 8 objects.png</code></pre></ul>
<p>The detected objects are uniquely labeled. Use auto leveling to visualize the detected objects:</p>
<ul>
<a href="../images/objects.png"><img src="../images/objects.png" width="256" height="171" class="image-slices" alt="Objects" /></a>
</ul>
<p>Object statistics is useful to review. To display them, use this command:</p>
<ul><pre class="highlight"><code>convert objects.gif -define connected-components:verbose=true -connected-components 4 objects.png</code></pre></ul>
<p>Five objects were detected in the source image with these statistics:</p>
<ul><pre class="highlight"><code>Objects (id: bounding-box centroid area mean-color):
0: 256x171+0+0 119.2,80.8 33117 srgb(0,0,0)
2: 120x135+104+18 159.5,106.5 8690 srgb(255,255,255)
3: 50x36+129+44 154.2,63.4 1529 srgb(0,0,0)
4: 21x23+0+45 8.8,55.9 409 srgb(255,255,255)
1: 4x10+252+0 253.9,4.1 31 srgb(255,255,255)
</code></pre></ul>
<p>Add <code>-define connected-components:exclude-header=true</code> to show the objects without the header-line.</p>
<p>Use <code>-connected-components 8</code> to visit 8 neighbors rather than 4. By default, neighbor colors must be exact to be part of a unique object. Use the <a href="command-line-options.html#fuzz">-fuzz</a> option to include pixels as part of an object that are <var>close</var> in color.</p>
<p>You might want to eliminate small objects by merging them with their larger neighbors. If so, use this command:</p>
<ul><pre class="highlight"><code>convert objects.gif -define connected-components:area-threshold=410 -connected-components 4 \
-auto-level objects.jpg</code></pre></ul>
<p>Here are the expected results. Notice, how the small objects are now merged with the background.</p>
<ul>
<a href="../images/objects.jpg"><img src="../images/objects.jpg" width="256" height="171" class="image-slices" alt="Objects" /></a>
</ul>
<p>Notice how two of the objects were merged leaving three remaining objects:</p>
<ul><pre class="highlight"><code>Objects (id: bounding-box centroid area mean-color):
0: 256x171+0+0 118.0,80.4 33557 srgb(0,0,0)
2: 120x135+104+18 159.5,106.5 8690 srgb(255,255,255)
3: 50x36+129+44 154.2,63.4 1529 srgb(0,0,0)</code></pre></ul>
<p>Area thresholding does not always work if objects are stacked on top of one-another. We're seeking a robust algorithm to tackle this use case.</p>
<p>By default, the labeled image is grayscale. You can instead replace the object color in the labeled image with the mean-color from the source image. Simply add this setting, <code>-define connected-components:mean-color=true</code>, to your command line.</p>
<p>Thresholds can optionally include ranges, e.g. <code>-define connected-components:area-threshold=410-1600</code>. To keep the background object, identify it with <code>-define connected-components:background-id=<var>object-id</var></code>. The default background object is the object with the largest area.</p>
<p>You may want to remove certain objects. Use <code>-define connected-components:remove-ids=<em>list-of-ids</em></code> (e.g. -define connected-components:remove-ids=2,4-5). Or use <code>-define connected-components:keep-ids=<em>list-of-ids</em></code> to keep these objects and merge all others. For convenience, you can keep the top objects with this option: <code>-define connected-components:keep-top=<em>number-of-objects</em></code></p>
<p>Objects in your image may look homogeneous but have slightly different color values. By default, only pixels that match exactly are considered as part of a particular object. For slight variations of color in an object, use <code>-fuzz</code>. For example,</p>
<ul><pre class="highlight"><code>convert star-map.png -fuzz 5% -define connected-components:verbose=true \
-define connected-components:mean-color=true -connected-components 4 stars.gif</code></pre></ul>
</div>
</div>
</main><!-- /.container -->
<footer class="magick-footer">
<div class="container">
<p><a href="security-policy.html">Security</a> •
<a href="news.html">News</a>
<a href="connected-components.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
<a href="links.html">Related</a> •
<a href="sitemap.html">Sitemap</a>
<br/>
<a href="support.html">Sponsor</a> •
<a href="http://pgp.mit.edu/pks/lookup?op=get&search=0x89AB63D48277377A">Public Key</a> •
<a href="https://imagemagick.org/script/contact.php">Contact Us</a>
<br/>
<a href="https://github.com/imagemagick/imagemagick6" 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> •
<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>
<br/>
<small>© 1999-2021 ImageMagick Studio LLC</small></p>
</div>
</footer>
<!-- Javascript assets -->
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" crossorigin="anonymous" />
</body>
</html>
<!-- Magick Cache 1st January 2021 18:17 -->
|