2012-12-07 55 views
3

我正在使用cvloadimage在我的程序中打開圖像。圖像位於外部目錄中,使用文件名中的當前時間生成。cvLoadImage使用字符串常量,但不是c_str()

當我嘗試加載這樣圖片:

IplImage *image = cvLoadImage(path.c_str,CV_LOAD_IMAGE_COLOR); 

圖像結構將是NULL,應用程序將符合Q分段故障停止。 當我嘗試加載圖像是這樣的:

IplImage *image = cvLoadImage("path/images/image_2012_11_25.jpg",CV_LOAD_IMAGE_COLOR); 

那麼它的偉大工程。

問題cvLoadImage不能接受任何類型的文本,只有const char*? 但c_str()將字符串轉換爲char*,對吧?

我該如何解決這個問題?

+2

它不應該是'path.c_str(在'你的代碼? – Niko

+0

原來它是,有一個拼寫錯誤。你可能每5秒只能編輯一條評論。(點擊此框取消) –

+0

我根據你的評論進行了檢查,我沒有發現任何這樣的問題,兩種方法都一樣: 'string name(「path \\ test.png」); IplImage * img = cvLoadImage(name.c_str(),CV_LOAD_IMAGE_COLOR); cvShowImage(「Win」,img);''和'IplImage * img = cvLoadImage(「path \\ test.png」,CV_LOAD_IMAGE_COLOR); cvShowImage(「Win」,img);''我正在使用'OpenCV 2.4.5'如果您使用的是C++,我會建議您使用'cv :: Mat'等C++ OOP構造。 –

回答

2

我有同樣的問題寫入文件,所以我用下面的代碼:)

const char *M=s.c_str(); 
file.write(M,s.size()); 

希望工程......

相關問題