最近抓到些掃圖,(看不見圖請掛proxy試試)
看起來是分開掃的樣子,想把它縫成一張,
可是用photoshop一張張弄實在有點慢,
就利用一些簡單的image retrieval技巧來寫個程式
步驟如下:
1.先對每個column做energy measure,存成長為圖寬的vector,
energy measure有很多方法,如average,standard deviation等,
我採用Norm-2,
sum(C_k^2) / N^2
也就是像素的平方summation起來再除以高度的平方
2.接下來做similarity measure
計算兩張圖的distance,
例如寬度定為5
取左邊的圖507到512為L
取右邊的圖1到5為R
以簡單的euclidean distance
sqrt((L_k - R_k) / var(L))
來計算L和R兩個vector的distance
3.從寬度0(兩張圖沒有相似的地方,直接合併)
到上限(預設為寬*0.1)的distance中選出最小的,
表示左右兩圖以這寬度縫合最合適
4.用簡單的linear interpolation來合併
(L_k * (N-k) + R_k * k) / N
5.完成(看不到圖再次見諒)
known issue:
有些歪得比較嚴重的圖就很難判斷出來,縫完後還是要人工檢查一遍,有錯的手動縫
要增加準確度就要用上更高階的statistics method和影像技術
程式很簡單,有需要的就自己寫吧
放上簡陋的java source code....>/////<
http://kevingwn.myweb.hinet.net/MergeLR.java對範例圖(マジキュー Illustrations 2)感興趣到這抓
http://photo.xuite.net/kevingwn/208953歡迎challenge!