2

この質問は、私がここで尋ねた別の質問に関連しています。

Matlab の jpeg ツールボックスから jpeg_read を使用して画像を読み取る際のエラー

Windows 7 で jpeg ツールボックスをコンパイルしようとしましたが (投稿した質問への回答で Shai が提供したコマンドを使用して)、次のエラーが表示されます。

jpeg_read.c(52) : fatal error C1083: Cannot open include file: 'jerror.h': No such file or directory 

これは、libjpeg をビルドしていないために発生したと思われます。jpegtoolbox の README にあるように libjpeg6b をビルドしようとしましたが、Visual Studio 2010 を使用して Windows でそれを行う方法についての明確なガイドが見つかりませんでした (また、libjpeg のインストール ドキュメントはあまり役に立ちません)。そのため、libjpeg8d のビルドを終了しました。

私の質問は、libjpeg8d を使用して jpeg ツールボックスをコンパイルする方法があるかどうかです。コマンドを実行してみました:

mex -I<IJGPATH> jpeg_read.c <LIBJPEG>

IJGPATH は libjpeg8d インストール フォルダーであり、LIBJPEG は IJGPATH/Release 内の jpeg.lib ファイルへのパスですが、以前と同じ jerror.h の欠落エラーが発生します。

前もって感謝します。

4

2 に答える 2

1

JPEG ツールボックスには、JPEG ファイルを操作するための Matlab ルーチンが含まれています。Matlab の組み込み関数 IMREAD および IMWRITE は、JPEG ファイルと画像配列間の基本的な変換を提供しますが、JPEG 係数や量子化テーブルなどの JPEG 画像の詳細へのアクセスは提供しません。

このパッケージのルーチンは、離散コサイン変換 (DCT) 係数、量子化テーブル、ハフマン コーディング テーブル、色空間情報、コメント マーカーなど、Matlab から JPEG ファイルの内容に直接アクセスするための追加機能を提供します。ツールボックスを Matlab に追加して、関数を使用できます。

最初に、以下がシステムにインストールされているかどうかを確認します。

1.Microsoft Windows SDK7 2.Microsoft Visual C++ 2010 Express

インストールされていない場合は、指定された順序でダウンロードしてインストールします。

注: Windows SDK をインストールする前に、Visual C++ 2010 の再配布パッケージをすべてアンインストールしてください。そうしないと、インストール中に Windows SDK で問題が発生し、インストールが失敗します。インストール中に、Windows ヘッダーとライブラリの下で、64 ビット OS の場合は「x64 ライブラリ」、32 ビット OS の場合は「x86 ライブラリ」を確認することを忘れないでください。これにより、64 ビット オペレーティング システム用のコンパイラ ツールを使用できます。それが終わったら、Visual C++ をインストールします。これらのツールは無料で、マイクロソフトの Web サイトから入手できます。オンライン インストーラーとオフライン インストーラーの両方が利用可能です。これからが本当の統合プロセスです

ステップ 1: jpeg ツールボックスをダウンロードし、別のフォルダー (例: jpeg) に解凍します。

jpegツールボックスをダウンロード

ステップ 2: jpeg ソース ファイルをダウンロードし、別のフォルダー (例: jpegsrc) に展開します。jpegsrc にあるフォルダー jpeg-6b で、jconfig.vc を jconfig.h に、makefile.vc を makefile に名前変更します。

jpegsrcファイルをダウンロード

ステップ 3: [スタート] -> [すべてのプログラム] -> [Microsoft Windows SDK] から、コマンド プロンプトを開きます。これにより、「windows x64 デバッグ環境」が開きます。手順 2 で抽出した jpegsrc フォルダー内にある jpeg-6b フォルダーに移動します。コマンド「nmake clean all」を引用符なしで実行します。これにより、同じフォルダーに libjpeg.lib ファイルが作成されます。

ステップ 4: matlab を開き、ステップ 1 で作成した jpeg として作業フォルダーを選択します。

コマンド ウィンドウで次のコマンドを実行します。 mex -I jpeg_read.c mex -I jpeg_write.c

手順 2 で作成した IJG jpeg-6b ディレクトリへのパスと、IJG コード ライブラリ ファイル (libjpeg.lib) へのフル パスに置き換えます。

jpeg_read および jpeg_write 関数を使用するには、上記で作成した jpeg_read.mexw64 および jpeg_write.mexw64 ファイルを作業ディレクトリにコピーします。Visual C++ コンパイラをアンインストールしないでください。アンインストールすると機能しなくなります。

于 2013-01-21T01:39:42.070 に答える
0

Windows で作業しようとしている場合は、jerror.vc の名前を jerror.h に変更する必要があります。

また、ファイルをmexするときは、jpeg_read.cとjpeg_write.cをincludeから編集して、「jerror.h」を含める必要があります。

于 2013-03-27T05:51:39.410 に答える