分割图像处理中的连接区域的方法! 举个例子,
A=[1 1 1 0 0 0 0 0
1 1 1 0 1 1 0 0
1 1 1 0 1 1 0 0
1 1 1 0 0 0 1 0
1 1 1 0 0 0 1 0
1 1 1 0 0 0 1 0
1 1 1 0 0 1 1 0
1 1 1 0 0 0 0 0] );
要获得结果:
B=[ 1 1 1 0 0 0 0 0
1 1 1 0 2 2 0 0
1 1 1 0 2 2 0 0
1 1 1 0 0 0 3 0
1 1 1 0 0 0 3 0
1 1 1 0 0 0 3 0
1 1 1 0 0 3 3 0
1 1 1 0 0 0 0 0] );
matlab有个好办法,但在c很辛苦!
今天被这个问题折磨了半天,差点也忘了晚饭! 问题基本解决,但、速度还很慢! 晚上在宿舍终于看到了好办法,在这里做记录,别忘了!
16年前,Haralick Robert M和zrdll G. Shapiro这两个伟人给他们的《Computer and Robot Vision》(volumeI )写了方法,并进行了简单的说明。
1、运行长度编码输入图像。
2、Scan the runs,assigningpreliminarylabelsandrecordinglabelequivalencesinalocalequivalencetable。
3、Resolve the equivalence classes
4、relabeltherunsbasedontheresolvedequivalenceclasses。
速度很快,但很难实现! 不知道OpenCV上有没有现成的东西!