作者flyskycat (猫爪~抓抓抓)
看板C_Sharp
标题[问题] 关於影像处理方面的问题,向各位先进请益
时间Sat Apr 30 16:40:03 2011
各位先进好:
我目前正以C#写关於影像处理的一些程式
现阶段想完成 Connected Component Labeling 的程式撰写
但是遇到了瓶颈,在无法解决的情况下,想跟各位请教实现方法
我大致上了解,整个物件连通的方法(包含,4连通及8连通)
也实际写过一次,但是整体上来说,是失败的!
原因是因为在区域编号的部分,我每次判断到当前编号与某编号有关连,
就直接整个改写编号,这无形中处理次数会大量增加,遇到简单的小图片
16 x 16 确实能完成,但是遇到 320 x 240 大小的图片,整个处理速度
就会慢到一个夸张的境界,运算时间完全无法使用在即时的处理上。
後来多方参考资料後,了解原来编号只是先记录成一个集合,方便後面可
以改写成一样的编号,如此编号的改写会大量减少,运算时间也会缩短,
如此,便可以尝试用於即时的处理上。
---------------------------问题描述如上---------------------------
☆假设1
set1 = {1, 2, 3, 4}
set2 = {5, 6}
我目前产生集合的方式以 ArrayList 为主。
若区域编号不在这两个集合(set1, set2)内,则产生新的集合,如
set3 = {7}
☆假设2
set1 = {1, 2, 3, 4}
set2 = {5, 6, 7, 8, 9}
发现 set2 的编号9 与 set1 的编号4 有关,必须将 set2 整合到 set1 内
则可得 set1 = {1, 2, 3, 4, 5, 6, 7, 8, 9}
并且将 set2 删除
由於这似乎需要产生二维动态阵列,所以想请教各位前辈这方面的技巧
或者有更容易实作物件连通区域标示方法,也请指教 XD
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.122.79.51