把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
功能:
- Make the custom photographic mosaic image
- Support video material (TODO)
- Support GUI tool (TODO)
https://github.com/zmcx16/PhotoMosaic-Artifact
阿阿, 最後來還個願。 我FGO終於用送的石頭抽到阿比了!!! 前面幾篇的許願有傳達到阿, 感謝神~~~!!!
沒有留言:
張貼留言