如何使用MS Visual C ++ 2010 Express设置jpeglib

时间:2013-10-16 10:36:35

标签: opencv libjpeg

我尝试使用version 9中现有的众所周知的“jpeglib”。

概述:我是使用 MS Visual C ++ 2010 Express 的C编程入门者,最后阅读了一本C-book。我的目标是将RGB(.bmp)文件压缩为JPEG。所以我下载了 jpeglib (v9),阅读了所有安装等* .txt文件。可以编译C文件以获取 cjpeg.exe djpeg.exe jpeg.lib 等等。

在成功之后,我尝试使用 example.c 深入了解jpeg并控制压缩。 - >那没起效。然后我尝试使用OpenCV中包含的jpeglib。相同的非工作结果,而OpenCV代码示例编译成功。

我搜索了大量的示例,问题解决方案以及如何使用jpeglib的提示。我在这里找到的最有用的信息。但是在结果中我仍然无法编译自己的jpeg-tool或example.c(重写write_JPEG_file()函数)。

问题:当其他程序员只在代码中使用#include "jpeglib.h"成功运行jpeg函数时,基础知识可能出错了吗?对我来说包括这个文件似乎还不够。因此我必须要求你并重新启动一个一岁Question,这也没有帮助解决我的问题。由于多次尝试解决这些问题,我无法向您提供具体的错误消息。

以下是我目前使用OpenCV 2.4.6的 MS-VC ++ 2010配置

  1. C / C ++ - >一般 - >其他包含目录:
    • C:\的OpenCV \建立\包括
    • C:\的OpenCV \建立\包括\ OpenCV的
    • C:\的OpenCV \建立\包括\ opencv2
    • C:\的OpenCV \包括
    • C:\的OpenCV \包括\ OpenCV的
    • C:\的OpenCV \包括\ opencv2
    • C:\的OpenCV \的3rdParty \的libjpeg
  2. 链接器 - >一般 - >其他图书馆馆藏:
    • C:\的OpenCV \建立\ 86 \ VC10 \ lib中
  3. 链接器 - >输入 - >附加依赖项:
    • opencv_core246d.lib
    • opencv_imgproc246d.lib
    • opencv_highgui246d.lib
    • opencv_ml246d.lib
    • opencv_video246d.lib
    • opencv_features2d246d.lib
    • opencv_calib3d246d.lib
    • opencv_objdetect246d.lib
    • opencv_contrib246d.lib
    • opencv_legacy246d.lib
    • opencv_flann246d.lib
    • jpeg.lib [我添加到 C:\ opencv \ build \ x86 \ vc10 \ lib ]
  4. 最后我读过一些帖子:

    如果缺少某些东西你想知道我会尽力添加这些信息!

    编辑 - 一些错误消息:

    1>jpeg_coder.obj : error LNK2001: unresolved external symbol ""unsigned char * image_buffer" (?image_buffer@@3PAEA)".
    
    1>jpeg_coder.obj : error LNK2001: unresolved external symbol ""int image_height" (?image_height@@3HA)".
    
    1>jpeg_coder.obj : error LNK2001: unresolved external symbol """int image_width" (?image_width@@3HA)".
    

    第一个符号应在jpeglib.h中作为JSAMPLE FAR *JSAMPROW进行输入, 第二和第三个在rdjpgcom.c中定义为unsigned int image_height, image_width;

    也许,运气好的话,我想出了让jpeglib运行需要做些什么。在当前状态下,我必须检查并仔细检查我的问题解决方案是否正确。在这一点上非常感谢你对我的问题的关注。一旦我确定解决方案,我会发布它。

    问题解决方案:我没有正确设置OpenCV以使用jpeglib。我犯的错误是链接错误的* .lib文件。正确的链接文件是libjpegd.lib。太糟糕了,jpeglib v6.2包含在OpenCV 2.4.6而不是v9中。添加HAVE_JPEG以在OpenCV中使用jpeglib函数的提示我完全忽略了。 目前问题已解决。

1 个答案:

答案 0 :(得分:0)

问题解决方案:我没有正确设置OpenCV以使用jpeglib。我犯的错误是链接错误的* .lib文件。

正确的链接文件是libjpegd.lib

太糟糕了,jpeglib v6.2包含在OpenCV 2.4.6而不是v9中。添加HAVE_JPEG以在OpenCV中使用jpeglib函数的提示我完全忽略了。感谢所有试图解决这个问题的人。 目前问题已解决。