本篇文章來自 想知道網戀對象有沒有修圖嗎?試試看這款修圖偵測機器人! 的續篇,

因為 Python 的方法實在是太慢了,所以我一直在尋求加速的方法。
俗話說得好:
要看一個人怎麼做立委,就要看他怎麼做立委!

不是,我是說有些人可能不適合做立委、適合做總統!

舉個例子:
拿 Python 去做文字處理就很開心,但是拿 C/CPP 去做文字處理你就準備腦血栓;
反之拿 Python 做數學運算也會慢到中風,但是拿 C/CPP 做數學運算就風馳電掣。

所以我用 CPP 實現了需要數學運算的 DCT 方法,

主要是使用 extern “C” 方法來與 Python 對接,在 Python 那邊設定好輸出入的參數。

這邊比較需要注意的是因為我選用的讀圖方式是 OpenCV 的 CPP 函式庫,

所以寫 Makefile 的時候需要注意把 OpenCV 包進來。
在編譯的過程中 Makefile 也會發生抓不到 g++ 的時候
(想好好編譯真難 😇)
總之做了一點 Soft-link 還有 Dirty work 後終於能正確編譯了。
因為我是用”Single Thread”、”Mask” 的方法來實現 DCT 變換的,
所以讓我們來看看與 Python 版 與 CPP 版 比較效果如何:

CPP 版的運算速度比 Python 版快了近六倍,
有夠優質!

相關開源我更新在:
https://github.com/wuyiulin/GraphAppBot

想要測試一下這個服務:

https://t.me/DynamicGraphApp_bot

如果有任何問題歡迎聯絡我:
wuyiulin@gmail.com

By wuyiulin

喜歡騎單車的影像算法工程師

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *