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 是 jpeg.lib 文件的路径,在 IJGPATH/Release 中,但我仍然得到与以前相同的缺失 jerror.h 错误。

提前致谢。

4

2 回答 2

1

Jpeg 工具箱包含用于处理 JPEG 文件的 Matlab 例程。虽然 Matlab 的内置 IMREAD 和 IMWRITE 函数提供 JPEG 文件和图像数组之间的基本转换,但它们不提供对 JPEG 图像细节的访问,例如 JPEG 系数或量化表。

这个包中的例程提供了从 Matlab 直接访问 JPEG 文件内容的附加功能,包括离散余弦变换 (DCT) 系数、量化表、霍夫曼编码表、色彩空间信息和注释标记。可以将工具箱添加到 Matlab 中使用这些功能。

首先检查您的系统中是否安装了以下内容。

1.Microsoft windows sdk7 2.Microsoft visual c++ 2010 express

如果未安装,请按指定顺序下载并安装它们。

注意:在安装windows sdk之前,请先卸载visual c++ 2010的所有redistributalbe包。否则windows sdk在安装过程中出现问题,安装失败。在安装过程中,不要忘记在 Windows 标头和库下检查 64 位操作系统的“x64 库”和 32 位操作系统的“x86 库”。这允许将编译器工具用于 64 位操作系统。一旦结束,安装visual c++。这些工具是免费的,可在微软网站上获得。在线和离线安装程序都可用。现在是真正的整合过程

第 1 步:下载 jpeg 工具箱并将其解压缩到单独的文件夹(例如 jpeg)

下载 jpeg 工具箱

第 2 步:下载 jpeg 源文件并将其解压缩到单独的文件夹(例如.jpegsrc)。在 jpegsrc 中的文件夹 jpeg-6b 中,将 jconfig.vc 重命名为 jconfig.h 并将 makefile.vc 重命名为 makefile

下载 jpegsrc 文件

第三步:从开始->所有程序->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

此外,当您混合文件时,您需要编辑 jpeg_read.c 和 jpeg_write.c 从包含以包含“jerror.h”

于 2013-03-27T05:51:39.410 回答