vs2008調用opencv2.4.9的imread()函數失敗解決辦法

來源:互聯網
上載者:User

標籤:style   blog   http   使用   strong   檔案   

這兩天在看opencv的C++介面函數,剛開始就出現問題:

一個簡單的顯示映像的程式,就是運行不成功:

#include <opencv2/core/core.hpp>#include <opencv2/highgui/highgui.hpp>#include <string>using std::string;using namespace cv;int main(){string str="E:\\test\\LENA.BMP";Mat img1= imread(str);namedWindow("LENA");imshow("LENA",img1);waitKey();return 1;}

開始還懷疑是不是自己太久沒寫代碼,忘了檔案絕對路徑的寫法,查了下,斜杠\是保留符號,所以要正確編譯的話需要兩個斜杠\\,並沒有錯。

用絕對路徑的話就imread()這一步記憶體溢出:


映像直接放工程目錄下的話讀出來的映像就是空的:


糾結了一下午,終於找到了問題所在: 解決思路: 1、debug和release添加的庫是否正確。網上說如果庫沒添加正確就會出現這個情況,debug的應該是有XXXd.lib尾碼的,但我的庫是添加正確的。

debug加的庫:
opencv_calib3d249d.lib
opencv_contrib249d.lib
opencv_core249d.lib
opencv_features2d249d.lib
opencv_flann249d.lib
opencv_gpu249d.lib
opencv_highgui249d.lib
opencv_imgproc249d.lib
opencv_legacy249d.lib
opencv_objdetect249d.lib
opencv_ts249d.lib
opencv_video249d.lib
opencv_nonfree249d.lib
opencv_ocl249d.lib
opencv_photo249d.lib
opencv_stitching249d.lib
opencv_superres249d.lib
opencv_videostab249d.lib


Release加的庫:
opencv_calib3d249.lib
opencv_contrib249.lib
opencv_core249.lib
opencv_features2d249.lib
opencv_flann249.lib
opencv_gpu249.lib
opencv_highgui249.lib
opencv_imgproc249.lib
opencv_legacy249.lib
opencv_ml249d.lib
opencv_objdetect249.lib
opencv_ts249.lib
opencv_video249.lib
opencv_nonfree249.lib
opencv_ocl249.lib
opencv_photo249.lib
opencv_stitching249.lib
opencv_superres249.lib
opencv_videostab249.lib


2、vs2008不支援opencv2.4.9

查看添加包含庫檔案路徑發現:D:\Program Files\opencv2.4.9\build\x86\vc10\lib,我採用的是vc10版本的庫,而opencv2.4.9中沒有vc9版本的。用vs2010重新建立了一個項目,結果運行成功,奔潰。。。


先前用的都是c介面的函數,估計沒有大的影響,結果這次用c++介面函數則出現了這麼個問題,還好只是這個簡單程式調試時就發現了這個隱患,要不然後面搞大工程時遇上就麻煩了。

如果要在vs2008上使用opencv2.4.9,需要用cMake自己重新編譯一個庫。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.