Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opencv 如何使用MS Visual C++;2010年快车_Opencv_Libjpeg - Fatal编程技术网

Opencv 如何使用MS Visual C++;2010年快车

Opencv 如何使用MS Visual C++;2010年快车,opencv,libjpeg,Opencv,Libjpeg,我尝试使用现在在中可用的众所周知的“jpeglib” 强>概述>强:我是用C++ Visual C++ 2010 Express编程的C语言初学者的编程启动器。我的目标是将RGB(.bmp)-文件压缩为JPEG格式。所以我下载了jpeglib(v9),读取了所有的安装文件等等*.txt文件。可以编译C文件以获得cjpeg.exe、djpeg.exe、jpeg.lib等 成功后,我尝试使用example.c深入了解jpeg并控制压缩。->它不起作用。然后我尝试使用OpenCV中包含的jpeglib

我尝试使用现在在中可用的众所周知的“jpeglib”

<>强>概述>强:我是用C++ Visual C++ 2010 Express编程的C语言初学者的编程启动器。我的目标是将RGB(.bmp)-文件压缩为JPEG格式。所以我下载了jpeglib(v9),读取了所有的安装文件等等*.txt文件。可以编译C文件以获得cjpeg.exe、djpeg.exe、jpeg.lib等

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

我在谷歌上搜索了很多示例、问题解决方案和如何使用jpeglib的技巧。我在这里找到了最有用的信息。但最终我还是无法编译自己的jpeg工具或example.c(重写
write\u jpeg\u file()
函数)

问题:如果其他程序员只是在代码中使用
#包括“jpeglib.h”
来成功运行jpeg函数,那么基本上会有什么错误?对我来说,包括这个文件似乎是不够的。正因为如此,我不得不问你,并重新启动一个一岁的孩子,这也无助于解决我的问题。由于多次尝试解决这些问题,我无法向您提供具体的错误消息

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

  • C/C++->常规->其他包含目录:
    • C:\opencv\build\include
    • C:\opencv\build\include\opencv
    • C:\opencv\build\include\opencv2
    • C:\opencv\include
    • C:\opencv\include\opencv
    • C:\opencv\include\opencv2
    • C:\opencv\3rdparty\libjpeg
  • 链接器->常规->其他库目录:
    • C:\opencv\build\x86\vc10\lib
  • 链接器->输入->其他依赖项:
    • opencv_core246d.lib
    • opencv_imgproc246d.lib
    • opencv_highgui246d.lib
    • opencv_ml246d.lib
    • opencv_video246d.lib
    • opencv_功能2D246D.lib
    • opencv_calib346d.lib
    • opencv_objdetect246d.lib
    • opencv_contrib246d.lib
    • opencv_legacy246d.lib
    • opencv_flann246d.lib
    • jpeg.lib[我将其添加到C:\opencv\build\x86\vc10\lib中]
  • 最后,我已经阅读了一些帖子:

    如果你想知道我遗漏了什么,我会尽力添加这些信息

    编辑-一些错误消息:

    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\u height,image\u width

    也许,运气好的话,我知道需要做些什么才能运行jpeglib。在当前状态下,我必须反复检查我的问题解决方案是否正确。在这一点上,非常感谢您对我的问题的关注。一旦我确定解决方案,我就会发布它


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

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

    链接的正确文件是
    libjpeg.lib


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

    问题太长了,但是您没有准确地写下
    它是如何不起作用的
    很抱歉问了这么长的问题!它不起作用意味着缺少位于
    jpeglib.h
    jdatadst.c
    jcapimin.c
    和更多文件中的几个声明或函数。我甚至没有弄清楚需要哪些文件才能获得可编译的文件集(最低配置)。要获得您问题的答案,您需要提供错误消息-编译器或链接器错误、运行时崩溃信息等。opencv已经附带了libjpeg(第三方),那么为什么要推出自己的?你需要做的就是
    imwrite(“my.jpg”,img)完成了。我注意到OpenCV附带了jepglib。这就是为什么我现在专注于它。网络中的某个地方写着:要激活OpenCV中的jpeglib,必须将JPEG添加到
    highgui.h
    。但该文件存在四次,添加
    #define HAVE_JPEG
    不会改变任何内容。我不知道我是否正确使用此命令。此外,我不知道如何使用激活的jpeglib操作OpenCV jpeg编码,例如修改DCT。。。