2

YUV 画像ビューアを開発しようとしています。目的は、YUV 画像を読み取り、その画像をウィンドウに表示することです。私は C を使用してこのアプリケーションを開発しています。

YUV 情報を RGB データに変換した後、画像を表示するために、OpenCV の cvShowImage および cvResize 関数を使用しています。このアプリケーションを他のシステムで使用するには、コンパイル済みの dll を使用しているため、opencv をインストールする必要があります。「実行可能ファイルにopenCV Dllを埋め込む方法」で提供されているガイドに基づいて静的ライブラリを使用してプログラムを再コンパイルすることにより、この問題を修正し、マシン間で移植可能な新しい実行可能ファイルを生成しました。これにより、アプリケーションのファイル サイズが 100KB から 2350KB に増加しました。この成長はすごいです。これは、いくつかの不要な関数が最終的な実行可能ファイルにリンクされているためだと思われます

このために、スイッチ Eliminate Unreferenced Data (/OPT:REF) を使用しました。しかし、これは何も解決しませんでした。

この問題を解決する方法はありますか?

4

1 に答える 1

1

リンカは、exeファイルから不要なコードをすべて自動的に削除します。

しかし、あなたのプログラムが組み込まれていることを覚えているなら

  • あらゆる種類の画像形式(bmp、jpg、tiffなど)を読み取るためのすべてのコード、
  • OpenCVコアの大部分(マトリックス処理)
  • 一部のOS固有のウィンドウ処理とメッセージ処理(画像を表示し、サイズ変更/クリックなどができるようにするため)
  • あなたが使用し、知らない他のいくつかのユーティリティ

それだけです...数MBのコード。

編集

リリースモードでプログラムをビルドすることを忘れないでください。デバッグモードでは、標準コードにデバッグに関連する情報が追加されます。

于 2012-07-20T07:20:46.973 に答える