这个问题与我在这里提出的另一个问题有关:
Error reading image using jpeg_read from Matlab's jpeg toolbox
我一直在尝试在Windows 7下编译jpeg工具箱(使用我发布的问题答案中提供的命令Shai),但是我收到以下错误:
jpeg_read.c(52) : fatal error C1083: Cannot open include file: 'jerror.h': No such file or directory
我认为发生了因为我还没有建立libjpeg。我尝试构建libjpeg6b,就像jpegtoolbox的README说的那样,但是我找不到关于如何在Windows上使用visual studio 2010进行明确的指导(并且libjpeg的安装文档没有多大帮助),所以我结束了构建libjpeg8d。
我的问题是,是否有任何方法可以使用libjpeg8d来编译jpeg工具箱。我试过运行命令:
mex -I<IJGPATH> jpeg_read.c <LIBJPEG>
IJGPATH是我的libjpeg8d安装文件夹,LIBJPEG是jpeg.lib文件的路径,在IJGPATH / Release中,但我仍然像以前一样错过了jerror.h错误。
提前致谢。
答案 0 :(得分: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 ++。这些工具是免费的,可在microsoft网站上获得。在线和离线安装程序都可用。 现在是真正的整合过程
步骤1:下载jpeg工具箱并将其解压缩到单独的文件夹(例如jpeg)
下载jpeg工具箱
步骤2:下载jpeg源文件并将其解压缩到单独的文件夹(例如.jpegsrc)。在jpegsrc中的jpeg-6b文件夹中,将jconfig.vc重命名为jconfig.h,将makefile.vc重命名为makefile
下载jpegsrc文件
第3步:从开始 - &gt;所有程序 - &gt; Microsoft Windows sdk,打开命令提示符。这将打开'windows x64调试环境'。导航到jpegsrc文件夹中的jpeg-6b文件夹,该文件夹在步骤2中提取。运行命令'nmake clean all'不带引号。这会在同一文件夹中创建libjpeg.lib文件。
步骤4:现在打开matlab并选择工作文件夹作为jpeg,在步骤1中创建。
现在在命令窗口中运行以下命令, 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 ++编译器,否则它不会工作。
答案 1 :(得分:0)
如果您尝试在Windows中工作,则需要将jerror.vc重命名为jerror.h
另外,当你使用mex文件时,需要编辑jpeg_read.c和jpeg_write.c来自include以包含“jerror.h”