簡體   English   中英

用於 Windows 上的 OpenCV 應用的緊湊型構建

[英]Compact build for OpenCV applications on Windows

我正在閱讀這篇關於如何使用 OpenCV 為應用程序創建緊湊構建的文章。

但是,本文僅包括 GCC 相關優化。 我在 Visual Studio 中尋找等效選項,但只能找到最小化大小 (/Os) 的選項和選項 /LTCG。

我正在使用從源代碼構建的 OpenCV static 庫構建一個非常簡單的 OpenCV 控制台應用程序(代碼如下)。 問題是可執行文件的大小太大(調試版本為 37 MB,發布版本為 19 MB)。 我想將該大小減小到幾 MB,並且我正在尋找方法來做到這一點 - 我在研究這個時發現了那篇文章。

#include <iostream>
#include <opencv2/core.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/imgcodecs.hpp>

int main()
{
    cv::Mat m = cv::imread("sample.jpg");
    cv::imwrite("output.jpg", m);
    std::cout << "Hello World!\n" << m.rows << " " << m.cols;
    return 0;
}

以防萬一有人想知道,我包括以下庫(以下是發布模式):

opencv_core430.lib
opencv_imgproc430.lib
opencv_imgcodecs430.lib
libjpeg-turbo.lib
libpng.lib
libtiff.lib
libwebp.lib
ippiw.lib
zlib.lib
IlmImf.lib
libjasper.lib
ittnotify.lib
ippicvmt.lib

如果有人對 Visual Studio 中的等效選項有任何想法,那將有很大幫助。

另外,有沒有人成功地在 Visual Studio 上使用 static OpenCV 庫來減小可執行文件的大小?

您可以根據您的模塊要求進行構建, 博客中的詳細信息。

最簡單的構建方法是使用 OpenCV cmake 示例:

cmake
-D WITH_CUDA=OFF \
-D WITH_MATLAB=OFF \
-D BUILD_ANDROID_EXAMPLES=OFF \
-D BUILD_DOCS=OFF \
-D BUILD_PERF_TESTS=OFF \
-D BUILD_TESTS=OFF \
-D BUILD_SHARED_LIBS=OFF \
-D BUILD_opencv_objdetect=OFF \
-D BUILD_opencv_video=OFF \
-D BUILD_opencv_videoio=OFF \
-D BUILD_opencv_features2d=OFF \
-D BUILD_opencv_flann=OFF \
-D BUILD_opencv_ml=OFF \
-D BUILD_opencv_photo=OFF \
-D BUILD_opencv_python=OFF \
-D BUILD_opencv_shape=OFF \
-D BUILD_opencv_stitching=OFF \
-D BUILD_opencv_superres=OFF \
-D BUILD_opencv_ts=OFF \
-D BUILD_opencv_videostab=OFF \
-D BUILD_opencv_highgui=ON \
-D BUILD_opencv_imgproc=ON \
..

對於 static 鏈接,您可以通過將.a解壓縮到.o並將它們捆綁在單個.a中來挑選和選擇模塊。 注意:請確保不要破壞依賴項。

示例:使用ar -x libopencv_imgproc.a取消歸檔.a並再次歸檔ar -rc libopencv_custom.a *.o

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM