(1) distance ( ๐‘ฃ ) โ† 0 , โˆ€ ๐‘ฃ โˆˆ ๐‘†
(2) distance ( ๐‘ฃ ) โ† โˆž , โˆ€ ๐‘ฃ โˆˆ ๐‘‰ โงต ๐‘†
(3) repeat
(4)  for all ๐‘’ โˆˆ ๐ธ   do
(5)  converged โ† true
(6)  source โ† a r g m i n ๐‘ฃ โˆˆ { ๐‘ฃ ๐‘’ , ๐‘– , ๐‘ฃ ๐‘’ , ๐‘— } ๐‘‘ ๐‘– ๐‘  ๐‘ก ๐‘Ž ๐‘› ๐‘ ๐‘’ ( ๐‘ฃ )
(7)  target โ† a r g m a x ๐‘ฃ โˆˆ { ๐‘ฃ ๐‘’ , ๐‘– , ๐‘ฃ ๐‘’ , ๐‘— } ๐‘‘ ๐‘– ๐‘  ๐‘ก ๐‘Ž ๐‘› ๐‘ ๐‘’ ( ๐‘ฃ )
(8)    if  distance (target) > distance (source) + length ( ๐‘’ )   then
(9)   converged โ† false
(10)  distance (target) โ† distance (source) + length ( ๐‘’ )
(11)  label (target) โ† label (source)
(12)  end if
(13) end for
(14) until converged
(15) where
(16)  length ( ๐‘’ ) โˆถ = โ€– ๐‘” ( ๐‘ฃ ๐‘’ , ๐‘– ) โˆ’ ๐‘” ( ๐‘ฃ ๐‘’ , ๐‘— ) โ€– / ๐‘™ m a x + ๐œ† โˆ— ๐‘˜ ( ๐‘’ ) ,
(17)   ๐‘™ m a x โˆถ = m a x ๐‘’ โˆˆ ๐ธ โ€– ๐‘” ( ๐‘ฃ ๐‘’ , ๐‘– ) โˆ’ ๐‘” ( ๐‘ฃ ๐‘’ , ๐‘— ) โ€– ,
(18)   ๎‚ป ๐‘˜ ( ๐‘’ ) โˆถ = 0 , ( ๐‘ฃ ๐‘’ , ๐‘– โˆ‰ ๐บ ) โˆง ( ๐‘ฃ ๐‘’ , ๐‘— โˆ‰ ๐บ ) 1 , ( ๐‘ฃ ๐‘’ , ๐‘– โˆˆ ๐บ ) โŠ• ( ๐‘ฃ ๐‘’ , ๐‘— โˆˆ ๐บ ) 2 , ( ๐‘ฃ ๐‘’ , ๐‘– โˆˆ ๐บ ) โˆง ( ๐‘ฃ ๐‘’ , ๐‘— โˆˆ ๐บ )
Algorithm 1: Seeded Cellular Automaton Plus Edge detector.