查看完整版本: [-- [心得]自動縫圖 --]

『漫游』酷论坛 -> 图片处理技术交流区 -> [心得]自動縫圖 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

kevingwn 2005-07-25 00:41

[心得]自動縫圖

最近抓到些掃圖,(看不見圖請掛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!

天使小萌 2005-07-25 07:08
我把图换了个相册,点击放大。

这个东西完全没接触过..^^b
至于java源码,偶更是一头雾水。。

image retrieval,这个是什么?大概说说吧~

Vivian_G 2005-07-25 09:15
貌似挺有效的样子……
而且可以批量的话,工作量的确会少很多
不过N年没接触英文了……让偶小晕一下@_@

kevingwn 2005-07-25 11:24
因為有些名詞怕翻出來反而不懂,所以才會用原文了
Image Retrieval一般是翻作影像檢索,就是給一張圖,找出在資料庫中跟這張圖相似的圖

我的方法簡單說就是
假設有兩張寬度為512的圖
Left Right
1 2 3 4 .... 509 510 511 512 1 2 3 4 .... 509 510 511 512
(要是兩張圖沒有重複的地方就像上面那樣一左一右合併就好)
找重複的地方就是一行行比對,
01.
Left Right
001 002 003 004 .... 509 510 511 512
- - - - - - - - - - - - - - - - - - - - - - - - 001 002 003 004 .... 509 510 511 512

02.
Left Right
001 002 003 004 .... 509 510 511 512
- - - - - - - - - - - - - - - - - - - - - 001 002 003 004 .... 509 510 511 512

03.
Left Right
001 002 003 004 .... 509 510 511 512
- - - - - - - - - - - - - - - - - - 001 002 003 004 .... 509 510 511 512

04.
Left Right
001 002 003 004 .... 509 510 511 512
- - - - - - - - - - - - - - -001 002 003 004 .... 509 510 511 512

這樣一直重複下去,找到最好的方法合併

不知道這樣說明有沒有比較好理解

天使小萌 2005-07-25 15:11
这个倒是可以理解,不过,这东西是靠什么实现的,这点不懂。
是什么软件…… 还是说,只靠那段java代码就可以了?

gl5280 2005-07-25 15:20
呃,还是用ps吧-v-

kevingwn 2005-07-25 18:26
是的,靠那個java的程式碼即可...
編譯完後,命令列模式下執行

java MergeLR left_input right_input output

left_input:左半邊的圖,可以是jpg,png,tiff
right_input:右半邊的圖
output:輸出的檔名,輸出的圖檔格式是PNG

要批次處理的話寫一個bat檔就好
不過這段程式碼只是示範用,沒有什麼偵錯或訊息...很簡陋就是

kagomei 2005-07-25 18:54
能够批量自然不错,但是对于我这种BC级的人。。。还是看不懂,这与楼主无关系^^b

天使小萌 2005-07-25 19:03
我把07,08两张图放到e盘根目录,然后把你的那个MergeLR.java也放到e盘根目录,打开命令列模式,输入如下,但是…… -__-

这个,是不是漏了什么步骤。。>_<

修.艾尔希修斯 2005-07-25 19:04
楼主san~~让银看不懂的教程索灭有奖金的ヽ(  ̄ー ̄)ノ

天使小萌 2005-07-25 19:07
楼上乱说的。。

kevingwn 2005-07-25 19:31
java就是這點麻煩,請先到
http://java.sun.com/j2se/1.5.0/download.jsp
選Download JRE 5.0 Update 4下載java的執行環境,
我放一份Windows Online Installation在
http://kevingwn.myweb.hinet.net/jre-1_5_0_04-windows-i586-p-iftw.exe
懶得從原網站抓的,可以直接下上面連結的線上安裝檔

另外,也把編譯後的檔放到
http://kevingwn.myweb.hinet.net/MergeLR.class
然後照前面講的執行,記得java MergeLR ...就好,不要加.class喔

天使小萌 2005-07-25 20:35
下了半天总算把java的那个安装包给下下来了,但是,那个编译的文档,MergelR.class的下载路径,kevingwn君是不是给错了啊,那个地址是错误的,找不到文档。。

kevingwn 2005-07-25 21:02
sorry,路徑打錯了:P

已訂正

天使小萌 2005-07-25 21:21
 
啊啊,还真的成功了~~
为什么最后要是png呢,我开始用jpg,结果合出来的文件虽然有大小,但是却看不到,拖到浏览器里那图只是一把叉。。

还有,“image retrieval”这个东东到底是什么,这从头到尾好像只是和java有关么,是不是就是说,java可以实现影像检索?

如果不会弄那个java,那偶也还是做不到,换了其他图的话…… >_<

ps:扩展名为class的那个文件,要用什么打开才能正确显示啊?

kevingwn 2005-07-25 21:56
因為PNG是無失真壓縮,把圖縫完後可以再進一步處理,
要jpg的話再用acdsee轉吧

影像檢索要用什麼程式語言來實作都沒關係,
我對java熟所以才用它來寫,看得懂的一定可以用其他語言來寫,搞不好會更好開發

其實java不適合開發win32的app,還是mfc,delphi比較好(畢竟可以直接編為執行檔)
java編譯出來還是一個.class的檔案,還需透過執行環境才可以運作,
不過也就是這樣才能跨平台...有一好沒兩好

那個.class只是Bytecode檔,是可以反組譯回原始碼啦...只是我直接放出來了還需要那麼麻煩嗎:P

另外,請有空的大大測試一下效率,看看在什麼情況還會有誤判,thx~

天使小萌 2005-07-26 08:18
引用
最初由 kevingwn 发布
因為PNG是無失真壓縮,把圖縫完後可以再進一步處理,
要jpg的話再用acdsee轉吧

不不,我不是这个意思,我是说,为什么不能直接合成jpg的(我合了却显示为一把叉)。难道说,最后合成什么格式的图,是你在那个class文档中定义了的么?

引用
最初由 kevingwn 发布
影像檢索要用什麼程式語言來實作都沒關係,
我對java熟所以才用它來寫,看得懂的一定可以用其他語言來寫,搞不好會更好開發
其實java不適合開發win32的app,還是mfc,delphi比較好(畢竟可以直接編為執行檔)
java編譯出來還是一個.class的檔案,還需透過執行環境才可以運作,
不過也就是這樣才能跨平台...有一好沒兩好
那個.class只是Bytecode檔,是可以反組譯回原始碼啦...只是我直接放出來了還需要那麼麻煩嗎:P
另外,請有空的大大測試一下效率,看看在什麼情況還會有誤判,thx~

呵呵,叫我测试那就不敢了,偶对这些一窍不通,一来是文科,二来自己也根本没去学过程序语言这方面的东西。偶只会一点basic,寒……

不过,这次也算是增长见识乐~~ ^^

我叫衣冠禽兽 2005-07-31 22:31
恩恩,示范图很好看,嘿嘿嘿


查看完整版本: [-- [心得]自動縫圖 --] [-- top --]


Powered by phpwind v8.5 Code ©2003-2011 phpwind
Time 0.010652 second(s),query:2 Gzip disabled