搜索 社区服务 统计排行 帮助
  • 5228阅读
  • 17回复

[心得]自動縫圖

楼层直达
级别: 侠客
注册时间:
2003-12-09
在线时间:
0小时
发帖:
330
最近抓到些掃圖,(看不見圖請掛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!
级别: 超级版主
注册时间:
2004-02-17
在线时间:
592小时
发帖:
13658
只看该作者 1楼 发表于: 2005-07-25
我把图换了个相册,点击放大。

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

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

※ 通往蘿莉国的秘境 ※

...........
级别: 新手上路
注册时间:
2003-12-27
在线时间:
0小时
发帖:
146
只看该作者 2楼 发表于: 2005-07-25
貌似挺有效的样子……
而且可以批量的话,工作量的确会少很多
不过N年没接触英文了……让偶小晕一下@_@
级别: 侠客
注册时间:
2003-12-09
在线时间:
0小时
发帖:
330
只看该作者 3楼 发表于: 2005-07-25
因為有些名詞怕翻出來反而不懂,所以才會用原文了
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

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

不知道這樣說明有沒有比較好理解
级别: 超级版主
注册时间:
2004-02-17
在线时间:
592小时
发帖:
13658
只看该作者 4楼 发表于: 2005-07-25
这个倒是可以理解,不过,这东西是靠什么实现的,这点不懂。
是什么软件…… 还是说,只靠那段java代码就可以了?

※ 通往蘿莉国的秘境 ※

...........
级别: 风云使者
注册时间:
2004-02-23
在线时间:
0小时
发帖:
4210
只看该作者 5楼 发表于: 2005-07-25
呃,还是用ps吧-v-

CJ ~~~~




有的人说我们过激、说我们意气用事,为什么不肯留下,哪怕是注册一个MJ......实际上,某斑竹放话,我们注册MJ来,他/她也能查的出来并将我们赶走。实际上,他/她过虑乐。我们走是走的堂堂正正,要来也会来的光明正大,群众的眼睛是雪亮的,这点早已得到了印证!
级别: 侠客
注册时间:
2003-12-09
在线时间:
0小时
发帖:
330
只看该作者 6楼 发表于: 2005-07-25
是的,靠那個java的程式碼即可...
編譯完後,命令列模式下執行

java MergeLR left_input right_input output

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

要批次處理的話寫一個bat檔就好
不過這段程式碼只是示範用,沒有什麼偵錯或訊息...很簡陋就是
级别: 风云使者
注册时间:
2003-08-30
在线时间:
1小时
发帖:
4463
只看该作者 7楼 发表于: 2005-07-25
能够批量自然不错,但是对于我这种BC级的人。。。还是看不懂,这与楼主无关系^^b
级别: 超级版主
注册时间:
2004-02-17
在线时间:
592小时
发帖:
13658
只看该作者 8楼 发表于: 2005-07-25
我把07,08两张图放到e盘根目录,然后把你的那个MergeLR.java也放到e盘根目录,打开命令列模式,输入如下,但是…… -__-

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

※ 通往蘿莉国的秘境 ※

...........
级别: 超级版主
注册时间:
2004-07-28
在线时间:
5276小时
发帖:
20582
只看该作者 9楼 发表于: 2005-07-25
楼主san~~让银看不懂的教程索灭有奖金的ヽ(  ̄ー ̄)ノ

2014俺の嫁全員妊娠ENDもはや確定!(* ̄ー ̄)y━・゜゜゜



芹酱、爱酱、織姫&乙姫~~俺的小天使们啊\(///∇//)/


舰娘动画第7集麻吉神回了啊 啊啊(T▽T) 话说放置了一年多回来一看完全变课金游了啊诶………
级别: 超级版主
注册时间:
2004-02-17
在线时间:
592小时
发帖:
13658
只看该作者 10楼 发表于: 2005-07-25
楼上乱说的。。

※ 通往蘿莉国的秘境 ※

...........
级别: 侠客
注册时间:
2003-12-09
在线时间:
0小时
发帖:
330
只看该作者 11楼 发表于: 2005-07-25
有賞嗎XD
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喔
级别: 超级版主
注册时间:
2004-02-17
在线时间:
592小时
发帖:
13658
只看该作者 12楼 发表于: 2005-07-25
下了半天总算把java的那个安装包给下下来了,但是,那个编译的文档,MergelR.class的下载路径,kevingwn君是不是给错了啊,那个地址是错误的,找不到文档。。

※ 通往蘿莉国的秘境 ※

...........
级别: 侠客
注册时间:
2003-12-09
在线时间:
0小时
发帖:
330
只看该作者 13楼 发表于: 2005-07-25
sorry,路徑打錯了:P

已訂正
级别: 超级版主
注册时间:
2004-02-17
在线时间:
592小时
发帖:
13658
只看该作者 14楼 发表于: 2005-07-25
 
啊啊,还真的成功了~~
为什么最后要是png呢,我开始用jpg,结果合出来的文件虽然有大小,但是却看不到,拖到浏览器里那图只是一把叉。。

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

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

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

※ 通往蘿莉国的秘境 ※

...........
快速回复

限150 字节
上一个 下一个