我嘗試使用現在在version 9中提供的衆所周知的「jpeglib」。如何使用MS Visual C++ 2010 Express設置jpeglib
概述:我使用微軟的Visual C++ 2010速成在C編程起動器和最後讀了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_JPEG_file()
函數)。
問題:在什麼基礎知識可能是錯誤的,當所有其他程序員只使用在他們的代碼#include "jpeglib.h"
成功運行JPEG功能?對我來說,包括這個文件似乎還不夠。正因爲如此,我不得不問你,並重新啓動一年前的Question,這也沒有幫助解決我的probs。由於多次嘗試解決這些問題,我無法爲您提供特定的錯誤消息。
這是我的當前MS-VC++ 2010配置使用的OpenCV 2.4.6:
- C/C++ - >常規 - >附加包含目錄:
- C:\的OpenCV \構建\包括
- C:\的OpenCV \建立\包括\的OpenCV
- C:\的OpenCV \建立\包括\ opencv2
- C:\的OpenCV \包括
- C:\ OpenCV的\包括\ OpenCV的
- C:\ OpenCV的\包括\ opencv2
- C:\ OpenCV的\的3rdParty \ libjpeg的
- 鏈接器 - >常規 - >附加庫目錄:
- C:\的OpenCV \建立\ 86 \ VC10 \ lib中
- 鏈接器 - >輸入 - >附加依賴:
- 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] 個
最後一些線程我已經閱讀:
- Compressing IplImage to JPEG using libjpeg in OpenCV - 1
- Compressing IplImage to JPEG using libjpeg in OpenCV - 2
- Need help in reading JPEG file using libjpeg
- how can i use jpeg_mem_src, jpeg_mem_dest in libjpeg-turbo?
如果有什麼想你想知道我會盡我所能添加這些信息!
編輯 - 某些錯誤消息:
1>jpeg_coder.obj : error LNK2001: unresolved external symbol ""unsigned char * image_buffer" ([email protected]@3PAEA)".
1>jpeg_coder.obj : error LNK2001: unresolved external symbol ""int image_height" ([email protected]@3HA)".
1>jpeg_coder.obj : error LNK2001: unresolved external symbol """int image_width" ([email protected]@3HA)".
第一個符號應該jpeglib.h
可以通過typedef爲JSAMPLE FAR *JSAMPROW
, 第二和第三rdjpgcom.c
被定義爲unsigned int image_height, image_width;
也許,有很多運氣的,我想出了讓jpeglib運行需要做些什麼。在當前狀態下,我必須檢查並仔細檢查我的問題解決方案是否正確。在這一點上非常感謝您對我的問題的關注。只要我確信我將發佈解決方案。
問題解決方案:我沒有正確設置使用jpeglib的OpenCV。我犯的錯誤是鏈接錯誤的* .lib文件。正確的鏈接文件是libjpegd.lib
。太糟糕了,jpeglib v6.2包含在OpenCV 2.4.6中而不是v9中。在OpenCV裏添加HAVE_JPEG
來使用jpeglib函數的提示我完全忽略了。 目前問題已解決。
這個問題太長了,但是你沒有寫出「它沒有工作」的問題# –
對不起,長期以來的問題! _沒有工作_表示缺少幾個聲明或函數,它們位於'jpeglib.h','jdatadst.c','jcapimin。c'和更多的文件。我什至不知道哪些文件是必要的是可編譯的文件集(最小配置)。 – watashi
要獲得您的問題的答案,您需要提供錯誤消息 - 編譯器或鏈接器錯誤,運行時崩潰信息等。 –