File tree Expand file tree Collapse file tree 2 files changed +42
-3
lines changed Expand file tree Collapse file tree 2 files changed +42
-3
lines changed Original file line number Diff line number Diff line change 70
70
* 类` GraphSegmentation ` 声明了图分割算法的公共函数
71
71
* 类` SelectiveSearchSegmentationStrategy ` 声明了相似度度量策略的公共函数
72
72
* 类` Region ` 实现了并查集,作用于区域合并
73
- * 类` Neighbor ` 定义了边
73
+ * 类` Neighbor ` 定义了相邻区域对
74
74
75
75
![ ] ( ./imgs/selectivesearchsegmentationstrategy.png )
76
76
89
89
* $k$:用于计算阈值函数τ,控制两个分量之间的差异必须大于其内部差异的程度
90
90
* $\sigma$:作用于高斯滤波
91
91
92
- ## 函数流程
92
+ ## 算法流程
93
93
94
94
根据测试代码` samples/selectivesearchsegmentation.cpp ` ,总体函数流程图如下所示
95
95
96
+ ![ ] ( ./imgs/selectivesearch-mind.png )
97
+
96
98
1 . 创建选择性搜索对象,输入原始图像,设置检测策略
97
99
2 . 处理图像,获取候选区域
98
100
3 . 绘制候选区域边框
151
153
152
154
### 第二步:区域检测
153
155
154
- 在预处理阶段设置了多个分组策略,
156
+ 区域检测操作在类` SelectiveSearchSegmentationImpl ` 的函数` process ` 中实现,步骤如下:
157
+
158
+ * 获取初始分割集
159
+ * 计算分层分组区域
160
+ * 组合所有区域并过滤重复区域
161
+
162
+ #### 获取初始分割集
163
+
164
+ 基于不同颜色空间下的图像以及基于不同图分割参数的` GraphSegmentation ` 对象,调用函数` processImage ` 获取初始分割区域
165
+
166
+ #### 计算分层分组区域
167
+
168
+ * 计算初始分割区域个数
169
+ * 计算初始分割区域大小
170
+ * 计算初始分割区域所属边框坐标
171
+ * 计算初始分割集中的相邻区域对
172
+
173
+ 基于不同的分组策略,调用函数` hierarchicalGrouping ` 进行分层分组算法
174
+
175
+ 1 . 计算初始分割集中相邻区域对的相似度
176
+ 2 . 基于相似度进行排序,合并相似度最高的区域对
177
+ 3 . 重新计算新区域与相邻区域的相似度
178
+ 4 . 重新排序,重复上述步骤,直到合并成一个区域
179
+ 5 . 通过随机数和合并` level ` 重新计算每个区域的秩(` rank ` )
180
+
181
+ #### 组合所有区域并过滤重复区域
182
+
183
+ 1 . 组合所有分组区域
184
+ 2 . 按秩排序
185
+ 3 . 过滤重复区域
186
+
187
+ ### 第三步:绘制候选区域边框
188
+
189
+ 每次绘制` 10 ` 个区域,按` d ` 键增加` 10 ` 个,按` a ` 键减去` 10 ` 个,按` q ` 键退出
190
+
191
+ ## 相似性度量
192
+
193
+
You can’t perform that action at this time.
0 commit comments