没什么自己的东西,大致翻译了opencv cook第 五章Detecting edges and corners using morphological filters部分的一些段落,并且做一个简略的概括。
首先创建四个5x5的不同形状的kernel;
1)kernel a(十字):
0,0,1,0,0,
0,0,1,0,0,
1,1,1,1,1,
0,0,1,0,0,
0,0,1,0,0
2)kernel b(菱形);
0,0,1,0,0,
0,1,1,1,0,
1,1,1,1,1,
0,1,1,1,0,
0,0,1,0,0
3)kernel c(X形);
1,0,0,0,1,
0,1,0,1,0,
0,0,1,0,0,
0,1,0,1,0,
1,0,0,0,1
4)kernel d(方形);
1,1,1,1,1,
1,1,1,1,1,
1,1,1,1,1,
1,1,1,1,1,
1,1,1,1,1,
便于理解用下图式例:
步骤为:1)对源图用kernel a进行膨胀,
2 )对1)步后的图用kernel b进行腐蚀得到result1:
3)对源图用kernel c进行膨胀
4)对3)步后的图用kernel d进行腐蚀得到result2
5)abs(result1-result2)就是corners了
其中,3)、4)步原理同1)、2)步骤,只是其的一个旋转版本,用于检测45度的corners
下图是实际检测corner的结果图:
@相关论文:The article A modified regulated morphological corner detector by F.Y. Shih, C.-F. Chuang, V.
Gaddipati, Pattern Recognition Letters, volume 26, issue 7, May 2005, for more information
on morphological corner detection.