Skip to content

Commit 00e3999

Browse files
committed
docs(plantuml): 更新选择性搜索算法类图实现
1 parent 25ea8b7 commit 00e3999

File tree

2 files changed

+128
-125
lines changed

2 files changed

+128
-125
lines changed

docs/uml/selectivesearch.puml

Lines changed: 50 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -3,72 +3,71 @@ skinparam classAttributeIconSize 0
33
scale 4096 width
44
title 选择性搜索算法
55

6-
GraphSegmentation <.. SelectiveSearchSegmentation
6+
segmentation.GraphSegmentation <.. segmentation.SelectiveSearchSegmentation
77

8-
SelectiveSearchSegmentationStrategy <.. SelectiveSearchSegmentation
8+
segmentation.SelectiveSearchSegmentationStrategy <.. segmentation.SelectiveSearchSegmentation
99

10-
SelectiveSearchSegmentation <|-- SelectiveSearchSegmentationImpl
10+
segmentation.SelectiveSearchSegmentation <|-- segmentation.SelectiveSearchSegmentationImpl
1111

12-
Region <|-- SelectiveSearchSegmentationImpl
12+
segmentation.Region <|-- segmentation.SelectiveSearchSegmentationImpl
1313

14-
Neighbour <|-- SelectiveSearchSegmentationImpl
14+
segmentation.Neighbour <|-- segmentation.SelectiveSearchSegmentationImpl
1515

16-
class SelectiveSearchSegmentation {
17-
+ setBaseImage(cv::InputArray img): void
18-
+ switchToSingleStrategy(int k = 200, float sigma = 0.8f): void
19-
+ switchToSelectiveSearchFast(int base_k = 150, int inc_k = 150, float sigma = 0.8f): void
20-
+ switchToSelectiveSearchQuality(int base_k = 150, int inc_k = 150, float sigma = 0.8f): void
21-
+ addImage(cv::InputArray img): void
22-
+ clearImages(): void
23-
+ addGraphSegmentation(std::shared_ptr<GraphSegmentation> g): void
24-
+ clearGraphSegmentations(): void
25-
+ addStrategy(std::shared_ptr<SelectiveSearchSegmentationStrategy> s): void
26-
+ clearStrategies(): void
27-
+ process(std::vector<cv::Rect> &rects): void
16+
class segmentation.SelectiveSearchSegmentation {
17+
+ virtual void setBaseImage(cv::InputArray img) = 0
18+
+ virtual void switchToSingleStrategy(int k = 200, float sigma = 0.8f) = 0
19+
+ virtual void switchToSelectiveSearchFast(int base_k = 150, int inc_k = 150, float sigma = 0.8f) = 0
20+
+ virtual void switchToSelectiveSearchQuality(int base_k = 150, int inc_k = 150, float sigma = 0.8f) = 0
21+
+ virtual void addImage(cv::InputArray img) = 0
22+
+ virtual void clearImages() = 0
23+
+ virtual void addGraphSegmentation(std::shared_ptr<GraphSegmentation> g) = 0
24+
+ virtual void clearGraphSegmentations() = 0
25+
+ virtual void addStrategy(std::shared_ptr<SelectiveSearchSegmentationStrategy> s) = 0
26+
+ virtual void process(std::vector<cv::Rect> &rects) = 0
2827
}
2928

30-
class SelectiveSearchSegmentationImpl {
31-
- name_: std::string
32-
- base_image: cv::Mat
33-
- images: std::vector<cv::Mat>
34-
- segmentations: std::vector<std::shared_ptr<GraphSegmentation> >
35-
- strategies: std::vector<std::shared_ptr<SelectiveSearchSegmentationStrategy> >
36-
29+
class segmentation.SelectiveSearchSegmentationImpl {
30+
- std::string name_
31+
- cv::Mat base_image
32+
- std::vector<cv::Mat> images
33+
- std::vector<std::shared_ptr<GraphSegmentation> > segmentations
34+
- std::vector<std::shared_ptr<SelectiveSearchSegmentationStrategy> > strategies
35+
__
36+
- void hierarchicalGrouping()
37+
.. constructor ..
3738
+ SelectiveSearchSegmentationImpl()
38-
39-
+ setBaseImage(cv::InputArray img): void
40-
+ switchToSingleStrategy(int k = 200, float sigma = 0.8f): void
41-
+ switchToSelectiveSearchFast(int base_k = 150, int inc_k = 150, float sigma = 0.8f): void
42-
+ switchToSelectiveSearchQuality(int base_k = 150, int inc_k = 150, float sigma = 0.8f): void
43-
+ addImage(cv::InputArray img): void
44-
+ clearImages(): void
45-
+ addGraphSegmentation(std::shared_ptr<GraphSegmentation> g): void
46-
+ clearGraphSegmentations(): void
47-
+ addStrategy(std::shared_ptr<SelectiveSearchSegmentationStrategy> s): void
48-
+ clearStrategies(): void
49-
+ process(std::vector<cv::Rect> &rects): void
50-
- hierarchicalGrouping(...): void
39+
.. override ..
40+
+ virtual void setBaseImage(cv::InputArray img) override
41+
+ virtual void switchToSingleStrategy(int k = 200, float sigma = 0.8f) override
42+
+ virtual void switchToSelectiveSearchFast(int base_k = 150, int inc_k = 150, float sigma = 0.8f) override
43+
+ virtual void switchToSelectiveSearchQuality(int base_k = 150, int inc_k = 150, float sigma = 0.8f) override
44+
+ virtual void addImage(cv::InputArray img) override
45+
+ virtual void clearImages() override
46+
+ virtual void addGraphSegmentation(std::shared_ptr<GraphSegmentation> g) override
47+
+ virtual void clearGraphSegmentations() override
48+
+ virtual void addStrategy(std::shared_ptr<SelectiveSearchSegmentationStrategy> s) override
49+
+ virtual void process(std::vector<cv::Rect> &rects) override
5150
}
5251

53-
class Region {
54-
+ id: int
55-
+ level: int
56-
+ merge_to: int
57-
+ rank: double
58-
+ bounding_box: cv::Rect
52+
class segmentation.Region {
53+
+ int id
54+
+ int level
55+
+ int merged_to
56+
+ double rank
57+
+ cv::Rect bounding_box
5958

6059
+ Region()
61-
+ &operator<<(std::ostream &os, const Region &n): std::ostream
62-
+ operator<(const Region &n): bool
60+
+ friend std::ostream &operator<<(std::ostream &os, const Region &n)
61+
+ bool operator<(const Region &n) const
6362
}
6463

65-
class Neighbour {
66-
+ from: int
67-
+ to: int
68-
+ similarity: float
64+
class segmentation.Neighbour {
65+
+ int from
66+
+ int to
67+
+ float similarity
6968

70-
+ &operator<<(std::ostream &os, const Neighbour &n): std::ostream
71-
+ operator<(const Neighbour &n): bool
69+
+ friend std::ostream &operator<<(std::ostream &os, const Neighbour &n)
70+
+ bool operator<(const Neighbour &n) const
7271
}
7372

7473
@enduml

docs/uml/selectivesearchsegmentationstrategy.puml

Lines changed: 78 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -3,115 +3,119 @@ skinparam classAttributeIconSize 0
33
scale 4096 width
44
title 选择性搜索算法 - 相似度计算
55

6-
SelectiveSearchSegmentationStrategy <.. SelectiveSearchSegmentation
6+
segmentation.SelectiveSearchSegmentationStrategy <.. segmentation.SelectiveSearchSegmentation
77

8-
SelectiveSearchSegmentationStrategyColor <.. SelectiveSearchSegmentationImpl
8+
segmentation.SelectiveSearchSegmentationStrategyColor <.. segmentation.SelectiveSearchSegmentationImpl
99

10-
SelectiveSearchSegmentationStrategyTexture <.. SelectiveSearchSegmentationImpl
10+
segmentation.SelectiveSearchSegmentationStrategyTexture <.. segmentation.SelectiveSearchSegmentationImpl
1111

12-
SelectiveSearchSegmentationStrategyFill <.. SelectiveSearchSegmentationImpl
12+
segmentation.SelectiveSearchSegmentationStrategyFill <.. segmentation.SelectiveSearchSegmentationImpl
1313

14-
SelectiveSearchSegmentationStrategySize <.. SelectiveSearchSegmentationImpl
14+
segmentation.SelectiveSearchSegmentationStrategySize <.. segmentation.SelectiveSearchSegmentationImpl
1515

16-
SelectiveSearchSegmentationStrategyMultiple <.. SelectiveSearchSegmentationImpl
16+
segmentation.SelectiveSearchSegmentationStrategyMultiple <.. segmentation.SelectiveSearchSegmentationImpl
1717

1818
' 分割策略
1919

20-
SelectiveSearchSegmentationStrategy <|-- SelectiveSearchSegmentationStrategyColor
20+
segmentation.SelectiveSearchSegmentationStrategy <|-- segmentation.SelectiveSearchSegmentationStrategyColor
2121

22-
SelectiveSearchSegmentationStrategy <|-- SelectiveSearchSegmentationStrategyFill
22+
segmentation.SelectiveSearchSegmentationStrategy <|-- segmentation.SelectiveSearchSegmentationStrategyTexture
2323

24-
SelectiveSearchSegmentationStrategy <|-- SelectiveSearchSegmentationStrategySize
24+
segmentation.SelectiveSearchSegmentationStrategy <|-- segmentation.SelectiveSearchSegmentationStrategyFill
2525

26-
SelectiveSearchSegmentationStrategy <|-- SelectiveSearchSegmentationStrategyTexture
26+
segmentation.SelectiveSearchSegmentationStrategy <|-- segmentation.SelectiveSearchSegmentationStrategySize
2727

28-
SelectiveSearchSegmentationStrategy <|-- SelectiveSearchSegmentationStrategyMultiple
28+
segmentation.SelectiveSearchSegmentationStrategy <|-- segmentation.SelectiveSearchSegmentationStrategyMultiple
2929

30-
SelectiveSearchSegmentationStrategyColor <|-- SelectiveSearchSegmentationStrategyColorImpl
30+
segmentation.SelectiveSearchSegmentationStrategyColor <|-- segmentation.SelectiveSearchSegmentationStrategyColorImpl
3131

32-
SelectiveSearchSegmentationStrategyTexture <|-- SelectiveSearchSegmentationStrategyTextureImpl
32+
segmentation.SelectiveSearchSegmentationStrategyTexture <|-- segmentation.SelectiveSearchSegmentationStrategyTextureImpl
3333

34-
SelectiveSearchSegmentationStrategyFill <|-- SelectiveSearchSegmentationStrategyFillImpl
34+
segmentation.SelectiveSearchSegmentationStrategyFill <|-- segmentation.SelectiveSearchSegmentationStrategyFillImpl
3535

36-
SelectiveSearchSegmentationStrategySize <|-- SelectiveSearchSegmentationStrategySizeImpl
36+
segmentation.SelectiveSearchSegmentationStrategySize <|-- segmentation.SelectiveSearchSegmentationStrategySizeImpl
3737

38-
SelectiveSearchSegmentationStrategyMultiple <|-- SelectiveSearchSegmentationStrategyMultipleImpl
38+
segmentation.SelectiveSearchSegmentationStrategyMultiple <|-- segmentation.SelectiveSearchSegmentationStrategyMultipleImpl
3939

40-
class SelectiveSearchSegmentationStrategy {
41-
+ setImage(cv::InputArray img, cv::InputArray regions, cv::InputArray sizes, int image_id = -1): void
42-
+ get(int r1, int r2): float
43-
+ merge(int r1, int r2): void
40+
class segmentation.SelectiveSearchSegmentationStrategy {
41+
+ virtual void setImage(cv::InputArray img, cv::InputArray regions, cv::InputArray sizes, int image_id = -1) = 0
42+
+ virtual float get(int r1, int r2) = 0
43+
+ virtual void merge(int r1, int r2) = 0
4444
}
4545

46-
class SelectiveSearchSegmentationStrategyColorImpl {
47-
- name_: std::string
48-
- histograms: cv::Mat
49-
- sizes: cv::Mat
50-
- histogram_size: int
51-
- last_image_id: int
52-
- last_histograms: cv::Mat
53-
46+
class segmentation.SelectiveSearchSegmentationStrategyColorImpl {
47+
- std::string name_
48+
- cv::Mat histograms
49+
- cv::Mat sizes
50+
- int histogram_size
51+
- int last_image_id
52+
- cv::Mat last_histograms
53+
__
5454
+ SelectiveSearchSegmentationStrategyColorImpl()
55-
+ setImage(cv::InputArray img, cv::InputArray regions, cv::InputArray sizes, int image_id = -1): void
56-
+ get(int r1, int r2): float
57-
+ merge(int r1, int r2): void
55+
.. override ..
56+
+ virtual void setImage(cv::InputArray img, cv::InputArray regions, cv::InputArray sizes, int image_id = -1) override
57+
+ virtual float get(int r1, int r2) override
58+
+ virtual void merge(int r1, int r2) override
5859
}
5960

60-
61-
class SelectiveSearchSegmentationStrategyTextureImpl {
62-
- name_: std::string
63-
- histograms: cv::Mat
64-
- sizes: cv::Mat
65-
- histogram_size: int
66-
- last_image_id: int
67-
- last_histograms: cv::Mat
68-
61+
class segmentation.SelectiveSearchSegmentationStrategyTextureImpl {
62+
- std::string name_
63+
- cv::Mat histograms
64+
- cv::Mat sizes
65+
- int histogram_size
66+
- int last_image_id
67+
- cv::Mat last_histograms
68+
__
6969
+ SelectiveSearchSegmentationStrategyTextureImpl()
70-
+ setImage(cv::InputArray img, cv::InputArray regions, cv::InputArray sizes, int image_id = -1): void
71-
+ get(int r1, int r2): float
72-
+ merge(int r1, int r2): void
70+
.. override ..
71+
+ virtual void setImage(cv::InputArray img, cv::InputArray regions, cv::InputArray sizes, int image_id = -1) override
72+
+ virtual float get(int r1, int r2) override
73+
+ virtual void merge(int r1, int r2) override
7374
}
7475

75-
class SelectiveSearchSegmentationStrategyFillImpl {
76-
- name_: std::string
77-
- sizes: cv::Mat
78-
- size_image: int
79-
- bounding_rects: std::vector<cv::Rect>
80-
76+
class segmentation.SelectiveSearchSegmentationStrategyFillImpl {
77+
- std::string name_
78+
- cv::Mat sizes
79+
- int size_image
80+
- std::vector<cv::Rect> bounding_rects
81+
__
8182
+ SelectiveSearchSegmentationStrategyFillImpl()
82-
+ setImage(cv::InputArray img, cv::InputArray regions, cv::InputArray sizes, int image_id = -1): void
83-
+ get(int r1, int r2): float
84-
+ merge(int r1, int r2): void
83+
.. override ..
84+
+ virtual void setImage(cv::InputArray img, cv::InputArray regions, cv::InputArray sizes, int image_id = -1) override
85+
+ virtual float get(int r1, int r2) override
86+
+ virtual void merge(int r1, int r2) override
8587
}
8688

87-
class SelectiveSearchSegmentationStrategySizeImpl {
88-
- name_: std::string
89-
- sizes: cv::Mat
90-
- size_image: int
91-
89+
class segmentation.SelectiveSearchSegmentationStrategySizeImpl {
90+
- std::string name_
91+
- cv::Mat sizes
92+
- int size_image
93+
__
9294
+ SelectiveSearchSegmentationStrategySizeImpl()
93-
+ setImage(cv::InputArray img, cv::InputArray regions, cv::InputArray sizes, int image_id = -1): void
94-
+ get(int r1, int r2): float
95-
+ merge(int r1, int r2): void
95+
.. override ..
96+
+ virtual void setImage(cv::InputArray img, cv::InputArray regions, cv::InputArray sizes, int image_id = -1) override
97+
+ virtual float get(int r1, int r2) override
98+
+ virtual void merge(int r1, int r2) override
9699
}
97100

98-
class SelectiveSearchSegmentationStrategyMultiple {
99-
+ addStrategy(std::shared_ptr<SelectiveSearchSegmentationStrategy> g, float weight): void
100-
+ clearStrategies(): void
101+
class segmentation.SelectiveSearchSegmentationStrategyMultiple {
102+
+ virtual void addStrategy(std::shared_ptr<SelectiveSearchSegmentationStrategy> g, float weight) = 0
103+
+ virtual void clearStrategies() = 0
101104
}
102105

103-
class SelectiveSearchSegmentationStrategyMultipleImpl {
104-
- name_: std::string
105-
- strategies: std::vector<std::shared_ptr<SelectiveSearchSegmentationStrategy> >
106-
- weights: std::vector<float>
107-
- weights_total: float
108-
106+
class segmentation.SelectiveSearchSegmentationStrategyMultipleImpl {
107+
- std::string name_
108+
- std::vector<std::shared_ptr<SelectiveSearchSegmentationStrategy> > strategies
109+
- std::vector<float> weights
110+
- float weights_total
111+
__
109112
+ SelectiveSearchSegmentationStrategyMultipleImpl()
110-
+ setImage(cv::InputArray img, cv::InputArray regions, cv::InputArray sizes, int image_id = -1): void
111-
+ get(int r1, int r2): float
112-
+ merge(int r1, int r2): void
113-
+ addStrategy(std::shared_ptr<SelectiveSearchSegmentationStrategy> g, float weight): void
114-
+ clearStrategies(): void
113+
.. override ..
114+
+ virtual void setImage(cv::InputArray img, cv::InputArray regions, cv::InputArray sizes, int image_id = -1) override
115+
+ virtual float get(int r1, int r2) override
116+
+ virtual void merge(int r1, int r2) override
117+
+ virtual void addStrategy(std::shared_ptr<SelectiveSearchSegmentationStrategy> g, float weight) override
118+
+ virtual void clearStrategies() override
115119
}
116120

117121
@enduml

0 commit comments

Comments
 (0)