vl_feat庫中的slic**由andrea vedaldi給出,xu於2023年提出的帶有部分改進的針對高光譜影象的slic演算法,將歐氏距離改為sid-sam距離,並將規則化引數m的範圍限制在0到1之間。它們的主體步驟仍是一樣的,但得到的超畫素個數有所不同,除了暗含的對小畫素的合併以外,具體程式實現中對精度的取捨也有影響。
xu的**:
slic演算法為每個畫素設計的表示特徵的向量
ψ (x
,y)=
[λxλ
yi(x
,y)]
\psi(x,y) =\left[\begin\lambda x \\ \lambda y \\ i(x,y)\end\right]
ψ(x,y)
=⎣⎡
λxλy
i(x,
y)⎦
⎤
vl_slic_segment (vl_uint32 * segmentation,
float const * image,
vl_size width,
vl_size height,
vl_size numchannels,
vl_size regionsize,
float regularization,
vl_size minregionsize)
1.計算邊緣圖(漸變強度)
計算邊緣圖compute edge map (gradient strength)
2.初始化聚類中心
初始化聚類中心initialize k-means centers(問題出在這一步)
3.開始k-means聚類迭代
開始k-means聚類迭代run k-means iterations
以下實驗結果僅針對145*145畫素大小的影象,長寬不等的不一定符合結論。
regionsize = floor(sqrt(原始畫素個數/需要的超畫素個數))
numregionsx = ceil((double) width / regionsize)
numregionsy = ceil((double) height / regionsize)
初始種子點個數 = floor(145/floor(sqrt(原始畫素個數/需要的超畫素個數)))^2
大概確定,結果見下圖(第一列為輸入超畫素個數,第三列為實際得到的個數)
SLIC超畫素(superpixel)演算法
slic演算法是 linear iterative cluster的簡稱,該演算法用來生成超畫素 superpixel 演算法大致思想是這樣的,將影象從rgb顏色空間轉換到cie lab顏色空間,對應每個畫素的 l,a,b 顏色值和 x,y 座標組成乙個5維向量v l,a,b,x,y 兩個畫素的相似...
為什麼對byte的操作會得到int的結果
下面的討論,適用於c c c 我決定使用c 來演示,為什麼?我覺得這段時間對c 這位兄弟的關注還是太少了。有些人會抱怨,為什麼下面的 會觸發編譯器的警告 他們會說 對乙個byte的操作,按理說,結果應該也是乙個byte呀,為什麼會是乙個int?要小心了大兄弟,你要求的東西,可能實際上並不是你真正想要...
超盟之家是做什麼的?為什麼做便利店要選擇超盟之家?
超盟之家是社群新零售的再一次公升級,以商圈本地化服務為宗旨,通過規模化實體店,為社群居民 商圈商家搭建乙個真實 快捷 就近 方便 安全的網路購物,商家服務和商業賦能的環境。超盟之家是什麼?超盟之家靠什麼盈利?超盟之家的服務主體為社群居民和商圈商家 你想購物,來超盟之家 你想學店鋪營銷,來超盟之家 你...