ee.Algorithms.Image.Segmentation.SNIC
קל לארגן דפים בעזרת אוספים
אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.
אשכולות של סופר-פיקסלים שמבוססים על SNIC (Simple Non-Iterative Clustering). הפונקציה מחזירה טווח של מזהי אשכולות ואת הממוצעים לכל אשכול עבור כל אחד מטווחים הקלט. אם לא מספקים את תמונת ה'זרעים' כקלט, הפלט יכלול פס 'זרעים' שמכיל את מיקומי הזרעים שנוצרו. ראו: Achanta, Radhakrishna and Susstrunk, Sabine, 'Superpixels and Polygons using Simple Non-Iterative Clustering', CVPR, 2017.
שימוש | החזרות |
---|
ee.Algorithms.Image.Segmentation.SNIC(image, size, compactness, connectivity, neighborhoodSize, seeds) | תמונה |
ארגומנט | סוג | פרטים |
---|
image | תמונה | תמונת הקלט לאשכול. |
size | מספר שלם, ברירת מחדל: 5 | הריווח בין מיקומי הזרעים של הסופר-פיקסלים, בפיקסלים. אם מספקים תמונת 'זרעים', לא נוצרת רשת. |
compactness | מספר ממשי (float), ברירת מחדל: 1 | גורם הדחיסות. ערכים גדולים יותר גורמים לאשכולות להיות קומפקטיים יותר (ריבועיים). אם מגדירים את הערך כ-0, השקלול של המרחק המרחבי מושבת. |
connectivity | מספר שלם, ברירת מחדל: 8 | קישוריות. 4 או 8. |
neighborhoodSize | מספר שלם, ברירת מחדל: null | גודל השכונה של קטעי המפה (כדי להימנע מארטיפקטים בגבולות של קטעי המפה). ברירת המחדל היא 2 * גודל. |
seeds | תמונה, ברירת מחדל: null | אם מציינים ערך, כל הפיקסלים עם ערך שונה מאפס משמשים כמיקומי התחלה. פיקסלים שמשיקים (כפי שמצוין ב 'קישוריות') נחשבים כשייכים לאותו אשכול. |
דוגמאות
עורך הקוד (JavaScript)
// Note that the compactness and size parameters can have a significant impact
// on the result. They must be adjusted to meet image-specific characteristics
// and patterns, typically through trial. Pixel scale (map zoom level) is also
// important to consider. When exploring interactively through map tile
// visualization, the segmentation result it dependent on zoom level. If you
// need to evaluate the result at a specific scale, call .reproject() on the
// result, but do so with caution because it overrides the default scaling
// behavior that makes tile computation fast and efficient.
// Load a NAIP image for a neighborhood in Las Vegas.
var naip = ee.Image('USDA/NAIP/DOQQ/m_3611554_sw_11_1_20170613');
// Apply the SNIC algorithm to the image.
var snic = ee.Algorithms.Image.Segmentation.SNIC({
image: naip,
size: 30,
compactness: 0.1,
connectivity: 8,
});
// Display the original NAIP image as RGB.
// Lock map zoom to maintain the desired scale of the segmentation computation.
Map.setLocked(false, 18, 18);
Map.setCenter(-115.32053, 36.182016, 18);
Map.addLayer(naip, null, 'NAIP RGB');
// Display the clusters.
Map.addLayer(snic.randomVisualizer(), null, 'Clusters');
// Display the RGB cluster means.
var visParams = {
bands: ['R_mean', 'G_mean', 'B_mean'],
min: 0,
max: 255
};
Map.addLayer(snic, visParams, 'RGB cluster means');
הגדרת Python
מידע על Python API ועל שימוש ב-geemap
לפיתוח אינטראקטיבי מופיע בדף
Python Environment.
import ee
import geemap.core as geemap
Colab (Python)
# Note that the compactness and size parameters can have a significant impact
# on the result. They must be adjusted to meet image-specific characteristics
# and patterns, typically through trial. Pixel scale (map zoom level) is also
# important to consider. When exploring interactively through map tile
# visualization, the segmentation result it dependent on zoom level. If you
# need to evaluate the result at a specific scale, call .reproject() on the
# result, but do so with caution because it overrides the default scaling
# behavior that makes tile computation fast and efficient.
# Load a NAIP image for a neighborhood in Las Vegas.
naip = ee.Image('USDA/NAIP/DOQQ/m_3611554_sw_11_1_20170613')
# Apply the SNIC algorithm to the image.
snic = ee.Algorithms.Image.Segmentation.SNIC(
image=naip, size=30, compactness=0.1, connectivity=8
)
# Display the original NAIP image as RGB.
m = geemap.Map()
m.set_center(-115.32053, 36.182016, 18)
m.add_layer(naip, None, 'NAIP RGB')
# Display the clusters.
m.add_layer(snic.randomVisualizer(), None, 'Clusters')
# Display the RGB cluster means.
vis_params = {'bands': ['R_mean', 'G_mean', 'B_mean'], 'min': 0, 'max': 255}
m.add_layer(snic, vis_params, 'RGB cluster means')
m
אלא אם צוין אחרת, התוכן של דף זה הוא ברישיון Creative Commons Attribution 4.0 ודוגמאות הקוד הן ברישיון Apache 2.0. לפרטים, ניתן לעיין במדיניות האתר Google Developers. Java הוא סימן מסחרי רשום של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2025-07-26 (שעון UTC).
[null,null,["עדכון אחרון: 2025-07-26 (שעון UTC)."],[[["\u003cp\u003eApplies the Simple Non-Iterative Clustering (SNIC) algorithm to generate superpixels from an image.\u003c/p\u003e\n"],["\u003cp\u003eOutputs an image containing cluster IDs and per-cluster band averages.\u003c/p\u003e\n"],["\u003cp\u003eAlgorithm parameters like \u003ccode\u003esize\u003c/code\u003e and \u003ccode\u003ecompactness\u003c/code\u003e impact the resulting superpixel shapes and sizes and may require adjustments.\u003c/p\u003e\n"],["\u003cp\u003eIf no seed locations are provided, the algorithm generates them based on a grid defined by the \u003ccode\u003esize\u003c/code\u003e parameter.\u003c/p\u003e\n"],["\u003cp\u003eSuperpixel clustering is sensitive to pixel scale and zoom level during interactive visualization.\u003c/p\u003e\n"]]],["SNIC clustering segments an image into superpixels, outputting cluster IDs and per-cluster averages for each input band. Key parameters include `size` (seed spacing), `compactness` (cluster shape), and `connectivity`. A user can provide `seeds` to define seed locations; otherwise, they are generated. The output `Image` includes cluster IDs, band averages, and optionally generated seed locations. Adjusting `size` and `compactness` is crucial for optimal results, which are also affected by pixel scale.\n"],null,["# ee.Algorithms.Image.Segmentation.SNIC\n\nSuperpixel clustering based on SNIC (Simple Non-Iterative Clustering). Outputs a band of cluster IDs and the per-cluster averages for each of the input bands. If the 'seeds' image isn't provided as input, the output will include a 'seeds' band containing the generated seed locations. See: Achanta, Radhakrishna and Susstrunk, Sabine, 'Superpixels and Polygons using Simple Non-Iterative Clustering', CVPR, 2017.\n\n\u003cbr /\u003e\n\n| Usage | Returns |\n|----------------------------------------------------------------------------------------------------------------------------------|---------|\n| `ee.Algorithms.Image.Segmentation.SNIC(image, `*size* `, `*compactness* `, `*connectivity* `, `*neighborhoodSize* `, `*seeds*`)` | Image |\n\n| Argument | Type | Details |\n|--------------------|------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `image` | Image | The input image for clustering. |\n| `size` | Integer, default: 5 | The superpixel seed location spacing, in pixels. If 'seeds' image is provided, no grid is produced. |\n| `compactness` | Float, default: 1 | Compactness factor. Larger values cause clusters to be more compact (square). Setting this to 0 disables spatial distance weighting. |\n| `connectivity` | Integer, default: 8 | Connectivity. Either 4 or 8. |\n| `neighborhoodSize` | Integer, default: null | Tile neighborhood size (to avoid tile boundary artifacts). Defaults to 2 \\* size. |\n| `seeds` | Image, default: null | If provided, any non-zero valued pixels are used as seed locations. Pixels that touch (as specified by 'connectivity') are considered to belong to the same cluster. |\n\nExamples\n--------\n\n### Code Editor (JavaScript)\n\n```javascript\n// Note that the compactness and size parameters can have a significant impact\n// on the result. They must be adjusted to meet image-specific characteristics\n// and patterns, typically through trial. Pixel scale (map zoom level) is also\n// important to consider. When exploring interactively through map tile\n// visualization, the segmentation result it dependent on zoom level. If you\n// need to evaluate the result at a specific scale, call .reproject() on the\n// result, but do so with caution because it overrides the default scaling\n// behavior that makes tile computation fast and efficient.\n\n\n// Load a NAIP image for a neighborhood in Las Vegas.\nvar naip = ee.Image('USDA/NAIP/DOQQ/m_3611554_sw_11_1_20170613');\n\n// Apply the SNIC algorithm to the image.\nvar snic = ee.Algorithms.Image.Segmentation.SNIC({\n image: naip,\n size: 30,\n compactness: 0.1,\n connectivity: 8,\n});\n\n// Display the original NAIP image as RGB.\n// Lock map zoom to maintain the desired scale of the segmentation computation.\nMap.setLocked(false, 18, 18);\nMap.setCenter(-115.32053, 36.182016, 18);\nMap.addLayer(naip, null, 'NAIP RGB');\n\n// Display the clusters.\nMap.addLayer(snic.randomVisualizer(), null, 'Clusters');\n\n// Display the RGB cluster means.\nvar visParams = {\n bands: ['R_mean', 'G_mean', 'B_mean'],\n min: 0,\n max: 255\n};\nMap.addLayer(snic, visParams, 'RGB cluster means');\n```\nPython setup\n\nSee the [Python Environment](/earth-engine/guides/python_install) page for information on the Python API and using\n`geemap` for interactive development. \n\n```python\nimport ee\nimport geemap.core as geemap\n```\n\n### Colab (Python)\n\n```python\n# Note that the compactness and size parameters can have a significant impact\n# on the result. They must be adjusted to meet image-specific characteristics\n# and patterns, typically through trial. Pixel scale (map zoom level) is also\n# important to consider. When exploring interactively through map tile\n# visualization, the segmentation result it dependent on zoom level. If you\n# need to evaluate the result at a specific scale, call .reproject() on the\n# result, but do so with caution because it overrides the default scaling\n# behavior that makes tile computation fast and efficient.\n\n\n# Load a NAIP image for a neighborhood in Las Vegas.\nnaip = ee.Image('USDA/NAIP/DOQQ/m_3611554_sw_11_1_20170613')\n\n# Apply the SNIC algorithm to the image.\nsnic = ee.Algorithms.Image.Segmentation.SNIC(\n image=naip, size=30, compactness=0.1, connectivity=8\n)\n\n# Display the original NAIP image as RGB.\nm = geemap.Map()\nm.set_center(-115.32053, 36.182016, 18)\nm.add_layer(naip, None, 'NAIP RGB')\n\n# Display the clusters.\nm.add_layer(snic.randomVisualizer(), None, 'Clusters')\n\n# Display the RGB cluster means.\nvis_params = {'bands': ['R_mean', 'G_mean', 'B_mean'], 'min': 0, 'max': 255}\nm.add_layer(snic, vis_params, 'RGB cluster means')\nm\n```"]]