2019年8月14日 星期三

PhotoMosaic-Artifact Ver1.0 release

週日的時候花點時間把mosaic-generator (php)用python重新implement一遍, 因為演算法蠻簡單的, 所以真正的工作頂多就是把 GD library的方法找python的PIL library替代用, 另外就是把MySQL整個拔掉了, 為什麼作者當初要用MySQL我真的覺得超懸..., 唯一能想到的就是為了省記憶體, 畢竟要是素材圖超級多的話記憶體可能會吃不少, 不過每個素材圖也只需要記錄檔案名跟RGB值, 在怎麼樣記憶體用量也應該還好... 真心不懂QQ

把MySQL拔掉, 直接把素材圖資訊存到記憶體, 效率真的天差地遠, 以我下面那張做6400*4800, 素材圖282張的情況, 我用python寫的tool只需要2分鐘, 然後原版的php tool + MySQL要跑1小時27分..., 真的是天差地遠, 到底作者當初為什麼選擇用DB做這tool真是個謎阿...。

至於GD庫換成PIL庫的差異部分, 就是單純找類似功能的函式替代, 有差異就在自己手動解決, 沒什麼好講的XD

再來就是實際比較一下啦! 用python重新實作的tool跟原版php的差異如何, 畢竟用的影像函式庫也不同, 總還是會有些許不一樣, 這裡先用上次做的EVA圖比較看看:

mosaic-generator


PhotoMosaic-Artifact


原圖



恩....雖然看起來品質差不多, 可是我覺得明日香右眼跟嘴巴是mosaic-generator做的比較好, 輪廓比較明顯, 雖然應該只是運氣問題, 不過還是有點不甘心啊!!

既然如此就在來比較另一張圖吧, 選的圖是以前超喜歡的工畫堂音樂遊戲天使小夜曲:





比較之前照上次慣例先來張細緻點的圖(-row 192 -col 256 -scale 10 -gap 4 -e 27):

PhotoMosaic-Artifact


成果非常Great!!  不過這麼細緻的情況小圖就不清楚了, 為了馬賽克之美, 把row跟col各減一半, 然後一樣參數的情況下也跑mosaic-generator比較看看:


mosaic-generator


PhotoMosaic-Artifact


Perfect!! 看起來都很讚, 不過PhotoMosaic-Artifact看起來顏色稍微淡了點, 這問題主要是因為在做enhance colors時, PIL庫並沒有完全匹配GD庫的函式, 所以這邊我在做enhance colors合併時, 是用alpha值去代替合併程度, 如果把alpha值往上調就可以達到顏色更匹配原圖的, 這邊就不額外嘗試了, 現階段的結果已讓我足夠滿意XD

最後就是future work啦, 目前想好確定要做的有下面兩項:

1. 支援影像素材
2. 製作簡單的GUI應用程式
3. 優化效果 (optional)

第一點的話就是想要讓tool可以直接吃影像檔, 然後再根據使用者選的圖做馬賽克圖片, 舉例來說就是素材資料夾塞個一季13話的動畫, 最後產生出來的馬賽克圖就是這一季的回憶內容!!

至於第二點GUI應用程式一方面是順便練練前端技能的熟練度, 而且對一般使用者來說command line還是不親切, 有GUI應用程式還是比較好~。

第三點的話感覺有不少可以做, 像是有哪些filter可以用, 還有就是目前的演算法在選素材時, 是以average color決定哪張圖最適合, 可是以少數圖片來說, 用dominant color是比較適合的, 這塊就還要在試試看才知道, 想了解可以參考這裡

嘛...總之先休息個兩天, 之後再來慢慢做吧XD

功能:

  1. Make the custom photographic mosaic image
  2. Support video material (TODO)
  3. Support GUI tool (TODO)

程式原始碼: 
https://github.com/zmcx16/PhotoMosaic-Artifact


阿阿, 最後來還個願。  我FGO終於用送的石頭抽到阿比了!!!  前面幾篇的許願有傳達到阿, 感謝神~~~!!!

沒有留言:

張貼留言