Skip to content

Commit cd40bf9

Browse files
committed
docs(plantuml): 添加图分割算法UML类图
1 parent de185ef commit cd40bf9

File tree

3 files changed

+79
-1
lines changed

3 files changed

+79
-1
lines changed

docs/imgs/graphseg.png

79.9 KB
Loading

docs/uml/graphseg.puml

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
@startuml
2+
skinparam classAttributeIconSize 0
3+
scale 1.5
4+
title 图分割算法
5+
6+
' 泛化
7+
GraphSegmentation <|-- GraphSegmentationImpl
8+
' 依赖
9+
PointSet <.. GraphSegmentationImpl
10+
Edge <.. GraphSegmentationImpl
11+
' 聚合
12+
PointSetElement o-- PointSet
13+
14+
class GraphSegmentation {
15+
' 方法
16+
+ processImage(cv::InputArray src, cv::OutputArray dst): void
17+
+setSigma(double sigma): void
18+
+ getSigma() double
19+
+ setK(float k) void
20+
+ getK() float
21+
+ setMinSize(int min_size): void
22+
+ getMinSize(): int
23+
}
24+
25+
class GraphSegmentationImpl {
26+
' 属性
27+
- sigma: double
28+
- k: float
29+
- min_size: int
30+
- name_: string
31+
' 方法
32+
+ GraphSegmentationImpl()
33+
34+
+ processImage(cv::InputArray src, cv::OutputArray dst): void
35+
+setSigma(double sigma): void
36+
+ getSigma() double
37+
+ setK(float k) void
38+
+ getK() float
39+
+ setMinSize(int min_size): void
40+
+ getMinSize(): int
41+
42+
- filter(const Mat &img, Mat &img_filtered): void
43+
- buildGraph(Edge **edges, int &nb_edges, const Mat &img_filtered): void
44+
- segmentGraph(Edge *edges, const int &nb_edges, const Mat &img_filtered, PointSet **es): void
45+
- filterSmallAreas(Edge *edges, const int &nb_edges, PointSet *es): void
46+
- finalMapping(PointSet *es, Mat &output): void
47+
}
48+
49+
class Edge {
50+
' 属性
51+
+ from: int
52+
+ to: int
53+
+ weight: float
54+
' 方法
55+
+ operator<(const Edge &e): bool
56+
}
57+
58+
class PointSet {
59+
' 属性
60+
+ nb_elements: int
61+
' 方法
62+
+ PointSet(int nb_elements_)
63+
+ ~PointSet()
64+
65+
+ getBasePoint(int p): int
66+
+ joinPoints(int p_a, int p_b): int
67+
+ size(unsigned int p): int
68+
}
69+
70+
class PointSetElement {
71+
' 属性
72+
+ p: int
73+
+ size: int
74+
' 方法
75+
+ PointSetElement()
76+
+ PointSetElement(int p_)
77+
}
78+
@enduml

docs/图分割-源码解析.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030

3131
## 类图
3232

33-
![](./imgs/类图.png)
33+
![](./imgs/graphseg.png)
3434

3535
*`GraphSegmentation`声明了图分割算法的公共函数
3636
*`GraphSegmentationImpl`定义了图分割算法的具体实现

0 commit comments

Comments
 (0)