各位先進好:
我目前正以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