2023-02-03 21:16:55 +08:00
<!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 >
2023-02-03 21:24:11 +08:00
< 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" / >
2023-02-03 21:16:55 +08:00
< 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 -->
2023-02-03 21:24:11 +08:00
< script > window . jQuery || document . write ( '<script src="assets/jquery.slim.min.js"><\/script>' ) < / script > < script src = "assets/bootstrap.bundle.min.js" crossorigin = "anonymous" / >
2023-02-03 21:16:55 +08:00
< / body >
< / html >
2023-02-03 21:24:11 +08:00
<!-- Magick Cache 1st January 2021 18:17 -->