Opencv 如何使用MS Visual C++;2010年快车
我尝试使用现在在中可用的众所周知的“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(重写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
write\u jpeg\u file()
函数)
问题:如果其他程序员只是在代码中使用#包括“jpeglib.h”
来成功运行jpeg函数,那么基本上会有什么错误?对我来说,包括这个文件似乎是不够的。正因为如此,我不得不问你,并重新启动一个一岁的孩子,这也无助于解决我的问题。由于多次尝试解决这些问题,我无法向您提供具体的错误消息
以下是我当前使用OpenCV 2.4.6的MS-VC++2010配置:
- 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。。。