以JAVA實作了ACM SIGGRAPH 1992年的PAPER:Feature-Based Image Metamorphosis當成本學期電腦圖學的期末專題。當初會選擇這篇PAPER是因為他是Michael Jackson的歌曲Black or White的MV最後的效果。基於本身對他的崇拜,所以選擇了這篇。曾經有聽說這篇PAPER是相對簡單的,但我還是花了四個晚上的時間以MVC的架構將她完成,除了完成外我還提供了許多增進使用者效率的功能和操作介面,並且產生許多的DEMO做為Robustness的測試,讓本專題不只是好而是要達到完美的境界。

 

目前唯一的限制是輸入的兩張圖片必須是相同大小的長和寬。線段繪製時兩邊圖片的繪製順序需相同。

 

  • 以JAVA語言實作出一個MVC架構的Image Morphing程式。
  • 使用者可以自由調整和移動線段的位置,或者是刪除。此外選取線段時,兩張照片對應的線段皆會以不同顏色表示出來。
  • 使用者可以自行輸入Paper中給定的參數。亦可以決定中間需產生多少影像。
  • 提供預覽影片的介面,並將結果存成連續編號的JPG檔。
  • 繪製完的線段可以存檔供下次使用。
  • 使用了Substance這個Library來美化操作介面。

 

 

程式下載--請自行修改BAT檔中的內容調整系統配給JVM所需的記憶體,這與輸入的圖檔大小和繪製線段跟最終的影像數有關。目前預設是1GB。

原始碼下載

投影片下載

 

未來希望能加上產生N格影像的第i格的功能,舉例來說,我想產生30格的影像,可是我只需要第3格,目前的程式是以迴圈的方式算完這30格。但是在DEMO影片中最後的影片Morphing,其實只需要產生一對圖片中的某一格,再將每對圖片產生的這些單張影像連續播放即可達到影片中的效果。