超像素算法有很多蛋勺,SLIC是效果比較好的一種羡宙,今天介紹SLIC算法孵坚。
SLIC算法與K-means有些類似徐矩。
主要步驟
- 將圖像轉(zhuǎn)換為CIE Lab顏色空間
- 初始化
k
個(gè)種子點(diǎn)(聚類中心)滞时,在圖像上平均撒落k
個(gè)點(diǎn),k
個(gè)點(diǎn)均勻的占滿整幅圖像滤灯。 - 對種子點(diǎn)在內(nèi)的
n*n
(一般為3*3
)區(qū)域計(jì)算每個(gè)像素點(diǎn)梯度值坪稽,選擇值最小(最平滑)的點(diǎn)作為新的種子點(diǎn)鳞骤,這一步主要是為了防止種子點(diǎn)落在了輪廓邊界上窒百。 - 對種子點(diǎn)周圍
2S*2S
的方形區(qū)域內(nèi)的所有像素點(diǎn)計(jì)算距離度量(計(jì)算方法在后文),對于K-means算法是計(jì)算整張圖的所有像素點(diǎn)豫尽,而SLIC得計(jì)算范圍是2S*2S
篙梢,所以SLIC算法收斂速度很快!
其中S = sqrt(N/k)
美旧,N
是圖像像素個(gè)數(shù)渤滞。
- 因?yàn)閳D像上的每個(gè)像素點(diǎn)都可能被幾個(gè)種子點(diǎn)計(jì)算距離度量贬墩,選擇其中最小的距離度量對應(yīng)的種子點(diǎn)作為其聚類中心。
距離度量
前文說了圖像是要轉(zhuǎn)換為Lab顏色空間的妄呕,現(xiàn)在提取此三個(gè)顏色通道l
陶舞、a
、b
绪励,計(jì)算:
可以看到肿孵,距離度量有兩部分,
dc
表示顏色度量疏魏,ds
表示距離度量停做,另外Ns = S = sqrt(N/k)
,Nc
用常數(shù)m
代替大莫,m
在算法中可以調(diào)整雅宾,所以有:我們來分析一下這個(gè)變量
m
:
- 當(dāng)
m
值比較大時(shí),空間度量在距離測量過程中所占比重就比較大葵硕,那么生成的超像素比較緊湊眉抬。 - 當(dāng)
m
值比較小時(shí),顏色度量所占的比重就比較大懈凹,那么生成的超像素在邊緣部分較為緊湊蜀变,但形狀和大小不規(guī)則。
此外介评,灰度圖像和三維圖像的計(jì)算公式是:
所以库北,在SLIC算法中,有兩個(gè)變量種子個(gè)數(shù)k
和m
们陆,上張圖看一下不同的k
和m
的分割效果寒瓦。