2012-05-24 102 views
4

我正在尋找最小化我的android ndk構建庫的大小。如何最小化OpenCv庫的大小?

我已經開始使用Android的預構建OpenCv庫,截至目前我的lib的大小約爲3MB。我怎樣才能最小化它的大小?

我只需要讀/寫文件功能,PNG編碼/解碼,jpeg解碼器和OpenCv的典型圖像處理功能,例如resize和cvtColor。

任何指針非常感謝!

+0

您是否希望通過去除不會使用的庫的那些組件來最小化庫?如果是這樣的話,當你去掉圖書館時,這將是一個相當長的繪製過程,具有多個構建週期。 – Samveen

+0

好像你可以在構建時指定標誌。類似於ffmpeg使用的方法。 – Jona

+0

您也可以手動將您確實不需要的庫源代碼部分註釋掉,這會導致前面提到的多個構建週期。然而,這是一個冒險的路線。正如您所提到的,最好使用標誌。 – Samveen

回答

2

OpenCV庫有幾個模塊,你可能會考慮忽略像'highgui'和'gpu'這樣的模塊,也許更多取決於你需要和不需要的模塊。總之,我不太清楚你需要什麼。也許你應該使用不同的小型圖書館,因爲閱讀,寫作,解碼,轉換等不是真正的計算機視覺操作,如霍夫變換或距離圖

你可能會考慮的是cimg btw,你可以很容易地剝離一個,因爲它只是定義了越來越多的函數作爲cimg類的一部分。

祝你好運!

+1

您可以詳細說明如何禁用模塊嗎? – 2014-01-23 08:34:04

+0

如果您從源代碼構建opencv,而不是使用其他軟件包管理器(如apt-get)進行安裝,則可以使用cmake配置包含哪些模塊。自從一年多以前,我做了這件事,我忘記了細節。但是,我發現cmake-gui給了我一個用戶友好的界面來做到這一點。不過,編譯你自己的庫需要你擁有一些linux胸毛,可以這麼說。請點擊此處查看:http://docs.opencv.org/doc/tutorials/introduction/linux_install/linux_install.html。如果您不需要保存千字節,請使用發行版的軟件包管理器。 – Herbert

+0

您可以在這裏找到所有模塊的列表:http://docs.opencv.org/modules/core/doc/intro.html。正如我記得,你也可以禁用庫加載更多奇特的圖像格式等。以下是使用cmake-gui配置opencv的人的一個例子:http://www.techunited.nl/wiki/index.php?title=How_to_Install_OpenCV。祝你好運! – Herbert

2

你可能已經開始使用你的項目了,Jona,但是其他不使用cmake-gui的人可能會喜歡命令行示例。也就是說,如果你不想CCALIB模塊,你可以建立這樣的:

cmake的-DBUILD_OPENCV_CCALIB = OFF [其他cmake的標誌] ../

操縱打造標誌可能不包括你將所有的模塊排除但是,它可能是一個開始的好地方。要查看標誌選項列表,請打開CMakeLists.txt文件(opencv源目錄的頂部)。

打開/關閉標誌也不會像手動註釋代碼一樣破壞構建。