???? 我做圖像處理經常要用到矩陣運算,最常用到的工具就是matlab。不過matlab也就只能用在實驗,真正做程序的時候,好多東西都要自己寫,很麻煩。在網上搜了一下科學計算庫,找到了三個,gsl、blitz++和MTL,沒時間仔細研究哪個效率更高了,聽了Oscargreat的推薦,開始用blitz++。
??????blitz++的代碼下載下來發現,只是適合linux下編譯,幸好在網上搜到了幾篇不錯的文檔,在其指導下順利的編譯了blitz.lib。
????? 按照文檔所述,編譯blitz.lib和運行測試程序,都不會有問題。不過,我在嘗試把blitz庫用到自己的程序時,有了一些問題.
?????建了一個MFC應用程序,代碼如下:
#include stdafx.h"
#include "config.h"
#include <blitz/array.h>
using namespace blitz;
...
????? 這樣會報錯。和Oscargreat分析了一會,發現是MFC和blitz沖突了,MFC居然把min和max用宏定義了(windef.h),這樣和blitz里的min和max沖突,暫時的解決辦法是用#undef在前面屏蔽掉min和max,以后再找其他的辦法吧。
????? 還有就是blitz由于是C++ template庫,所以,有很多情況下的應用是不需要鏈接blitz.lib的,但是最好還是鏈接上,因為blitz源文件里還是有一些cpp的。