[問題] 影像處理connected component labeling
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 )
( 未必需要依照此格式,文章條理清楚即可 )
遇到的問題: (題意請描述清楚)
目前小弟用C寫CONNECTED COMPONENT LABELING的程式,
但是在等價部份上有一點問題,想請板上的各位高手指點迷津。
演算法如下:
小弟的做法是這樣子的,
就是掃瞄整張圖,
如果發現有白色的點,
就更進一步去看其周圍左上、上、右上、左,這四個點,
如果這四個點只有一個是白色的就沿用它的id值,
如果是大於一個的狀況,就存下它們的id,然後進行sort看哪個最小,
接著存到一個陣列(inx[])來建表。
ex:如果讀到三個id值分別是 5 6 7 然下來存到一個大陣列
存法如下 inx[5] = 5 inx[6] =5 inx[7] =5
這樣到時候 再掃一次的時候就可以把 5 6 7都整合成一樣的了。
如果四周都沒有白色的點,就新增一個id給它。
然後最後再掃一次,看圖上的id是多少就將inx[圖上id]內所存的值再更新到圖上
不過還是有點問題@~@麻煩各位看一下了。
有問題的code: (請善用置底文標色功能)
http://codepad.org/Vza2dqzq
補充說明:
下面兩個為輸入跟輸出~
http://www.badongo.com/pic/9562313
http://www.badongo.com/pic/9562314
http://www.badongo.com/pic/9562463
http://www.badongo.com/pic/9562465
上面第一組就有問題,可是第二組跑出來就OK
感覺好像特定方向的LABELING就會出錯0.0
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 120.126.194.178
推
06/08 09:28, , 1F
06/08 09:28, 1F
→
06/08 09:28, , 2F
06/08 09:28, 2F
推
06/08 10:01, , 3F
06/08 10:01, 3F
→
06/08 10:01, , 4F
06/08 10:01, 4F
→
06/08 10:04, , 5F
06/08 10:04, 5F
→
06/08 10:04, , 6F
06/08 10:04, 6F
→
06/08 10:05, , 7F
06/08 10:05, 7F
推
06/08 10:07, , 8F
06/08 10:07, 8F
推
06/08 13:39, , 9F
06/08 13:39, 9F
推
06/08 14:00, , 10F
06/08 14:00, 10F
※ 編輯: zodiace 來自: 120.126.194.178 (06/08 15:48)
→
06/08 15:48, , 11F
06/08 15:48, 11F
※ 編輯: zodiace 來自: 120.126.194.178 (06/08 15:59)
※ 編輯: zodiace 來自: 120.126.194.178 (06/08 16:03)
推
06/08 17:19, , 12F
06/08 17:19, 12F
→
06/08 17:21, , 13F
06/08 17:21, 13F
→
06/08 17:22, , 14F
06/08 17:22, 14F
推
06/08 17:35, , 15F
06/08 17:35, 15F
→
06/08 17:36, , 16F
06/08 17:36, 16F
→
06/08 17:36, , 17F
06/08 17:36, 17F
→
06/08 17:52, , 18F
06/08 17:52, 18F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):