范例
打开所有单元 关闭所有单元基本范例 (2)
范围 (24)
数据 (7)
ComponentMeasurements[(| | | | | |
| - | - | - | - | - |
| 0 | 0 | 1 | 1 | 1 |
| 2 | 0 | 1 | 0 | 1 |
| 0 | 0 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 | 0 |
| 3 | 0 | 3 | 3 | 3 |), "Count"]ComponentMeasurements[[image], "Count"]ComponentMeasurements[[image], "Min"]ComponentMeasurements[[image], "Min"]ComponentMeasurements[{[image], (| | | | | |
| - | - | - | - | - |
| 1 | 1 | 1 | 2 | 2 |
| 1 | 1 | 1 | 2 | 2 |
| 3 | 3 | 3 | 2 | 2 |
| 3 | 3 | 3 | 2 | 2 |
| 3 | 3 | 3 | 2 | 2 |)}, "Mean"]ComponentMeasurements[{{{1, 0}, {1, 0}, {0, 2}}, {{1, 0}, {1, 0}, {0, 3}}}, "Count"]ComponentMeasurements[\!\(\*Graphics3DBox[«8»]\), {"Image", "Count", "Mean", "StandardDeviation"}, All, "Dataset"]属性 (7)
ComponentMeasurements[(| | | | |
| - | - | - | - |
| 0 | 1 | 1 | 1 |
| 0 | 1 | 0 | 1 |
| 0 | 1 | 1 | 1 |
| 2 | 2 | 2 | 2 |), "Count"]ComponentMeasurements[(| | | | |
| - | - | - | - |
| 0 | 1 | 1 | 1 |
| 0 | 1 | 0 | 1 |
| 0 | 1 | 1 | 1 |
| 2 | 2 | 2 | 2 |), "FilledCount"]ComponentMeasurements[(| | | | |
| - | - | - | - |
| 0 | 1 | 1 | 1 |
| 0 | 1 | 0 | 1 |
| 0 | 1 | 1 | 1 |
| 2 | 2 | 2 | 2 |), "Centroid"]ComponentMeasurements[(| | | | |
| - | - | - | - |
| 0 | 1 | 1 | 1 |
| 0 | 1 | 0 | 1 |
| 0 | 1 | 1 | 1 |
| 2 | 2 | 2 | 2 |), "SemiAxes"]ComponentMeasurements[(| | | | |
| - | - | - | - |
| 0 | 1 | 1 | 1 |
| 0 | 1 | 0 | 1 |
| 0 | 1 | 1 | 1 |
| 2 | 2 | 2 | 2 |), "BoundingBox"]ComponentMeasurements[(| | | | |
| - | - | - | - |
| 0 | 1 | 1 | 1 |
| 0 | 1 | 3 | 1 |
| 0 | 1 | 1 | 1 |
| 2 | 2 | 2 | 2 |), "AdjacentBorders"]ComponentMeasurements[(| | | | |
| - | - | - | - |
| 0 | 1 | 1 | 1 |
| 0 | 1 | 0 | 1 |
| 0 | 1 | 1 | 1 |
| 2 | 2 | 2 | 2 |), {"Count", "AdjacentBorders"}]判据 (5)
ComponentMeasurements[[image], "Area", # > 1000&]ComponentMeasurements[[image], "Area", #AdjacentBorderCount == 0&]ComponentMeasurements[[image], {"Area", "AdjacentBorderCount"}, #1 > 1000 && #2 == 0&]ComponentMeasurements[[image], "Centroid", #Area > 1000 && #AdjacentBorderCount == 0&]f[x_, y_] := x > 1000 && y == 0ComponentMeasurements[[image], "Area", f[#Area, #AdjacentBorderCount]&]输出格式 (5)
ComponentMeasurements[[image], {"Count", "PerimeterCount"}, All, "ComponentAssociation"]ComponentMeasurements[[image], {"Count", "PerimeterCount"}, All, "PropertyAssociation"]ComponentMeasurements[[image], {"Count", "PerimeterCount"}, All, "ComponentPropertyAssociation"]ComponentMeasurements[[image], {"Count", "PerimeterCount"}, All, "PropertyComponentAssociation"]ComponentMeasurements[[image], {"Count", "PerimeterCount"}, All, "Dataset"]选项 (2)
CornerNeighbors (2)
缺省情况下,如果分量有 corner neighbor,则假定它们相连:
ComponentMeasurements[[image], "Count"]假定 4-连通性 (four-connectedness):
ComponentMeasurements[[image], "Count", CornerNeighbors -> False]ComponentMeasurements[(| | | | |
| - | - | - | - |
| 0 | 0 | 1 | 1 |
| 0 | 0 | 1 | 1 |
| 2 | 2 | 0 | 0 |
| 2 | 2 | 0 | 0 |), "Neighbors"]ComponentMeasurements[(| | | | |
| - | - | - | - |
| 0 | 0 | 1 | 1 |
| 0 | 0 | 1 | 1 |
| 2 | 2 | 0 | 0 |
| 2 | 2 | 0 | 0 |), "Neighbors", CornerNeighbors -> False]应用 (5)
m = MorphologicalComponents[img = [image], .3];
ComponentMeasurements[ {m, img} , "MaskedImage", #Elongation > 0.5&]i = [image];
ComponentMeasurements[{i, MorphologicalComponents[i]}, "Mean"]i = [image];b = Binarize[i, {0, .7}]cells = ComponentMeasurements[b, {"Centroid", "EquivalentDiskRadius"}, #AdjacentBorderCount == 0 && 50 < #Area < 1200&]HighlightImage[i, Circle@@@cells[[All, 2]]]i = [image];labels = ClusteringComponents[i, 5];
Colorize[labels]Image[Replace[labels, ComponentMeasurements[{i, labels}, "Mean"], 2]]Image[Replace[labels, ComponentMeasurements[{i, labels}, "MeanIntensity"], 2]]m = MaxFilter[MorphologicalComponents[[image]], 2];
Graph[ComponentMeasurements[m, "Label"][[All, 1]], DeleteDuplicates[Sort /@ Flatten[ComponentMeasurements[m, "Neighbors"] /. (i_ -> {l___}) :> (i#& /@ {l})]], VertexCoordinates -> ComponentMeasurements[m, "Centroid"], VertexSize -> 1]属性和关系 (8)
i = [image];ComponentMeasurements[i, #Count > 500&]首先使用 DeleteSmallComponents 删除较小分量:
DeleteSmallComponents[i, 500]ComponentMeasurements[%, "Count"]i = [image];ComponentMeasurements[i, "Count", #AdjacentBorderCount == 0&]//Values首先使用 DeleteBorderComponents 删除边界分量:
DeleteBorderComponents[i]ComponentMeasurements[%, "Count"]//Valuesi = [image];ComponentMeasurements[i, "Count", #Holes == 1 && #AdjacentBorderCount == 0&]//Values使用 SelectComponents 删除不具有孔或接触边界的分量:
SelectComponents[i, #Holes == 1 && #AdjacentBorderCount == 0&]ComponentMeasurements[%, "Count"]//ValuesComponentMeasurements[[image], "Properties"]Length[%]ComponentMeasurements[[image], "Properties"]Length[%]ComponentMeasurements[(| | |
| - | - |
| 1 | 1 |
| 0 | 2 |), "Properties"]Length[%]ComponentMeasurements[{(| | |
| - | - |
| 1 | 1 |
| 0 | 2 |), (| | |
| - | - |
| 0 | 0 |
| 2 | 1 |)}, "Properties"]Length[%]img = [image];components = (| | |
| - | - |
| 1 | 1 |
| 0 | 2 |);
Complement[ComponentMeasurements[{components, img}, "Properties"], ComponentMeasurements[components, "Properties"]]Length[%]文本
Wolfram Research (2010),ComponentMeasurements,Wolfram 语言函数,https://reference.wolfram.com/language/ref/ComponentMeasurements.html (更新于 2017 年).
CMS
Wolfram 语言. 2010. "ComponentMeasurements." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2017. https://reference.wolfram.com/language/ref/ComponentMeasurements.html.
APA
Wolfram 语言. (2010). ComponentMeasurements. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/ComponentMeasurements.html 年
BibTeX
@misc{reference.wolfram_2026_componentmeasurements, author="Wolfram Research", title="{ComponentMeasurements}", year="2017", howpublished="\url{https://reference.wolfram.com/language/ref/ComponentMeasurements.html}", note=[Accessed: 14-October-2026]}
BibLaTeX
@online{reference.wolfram_2026_componentmeasurements, organization={Wolfram Research}, title={ComponentMeasurements}, year={2017}, url={https://reference.wolfram.com/language/ref/ComponentMeasurements.html}, note=[Accessed: 14-October-2026]}