2012-10-07 70 views
2

我認爲我的問題很基本。我試圖讓Open CV在我的OSX Lion上安裝。我遵循了這個鏈接推薦的所有步驟http://tilomitra.com/opencv-on-mac-osx/在Mac OS X上打開簡歷,圖像加載問題

但是,當我運行在Xcode網站上推薦的C++代碼時,它無法使用cvLoadImage()函數加載圖像。我已將我的圖像放置在項目文件夾中(建議使用)。下面是我運行的代碼:

// Example showing how to read and write images 
#include <opencv2/opencv.hpp> 
#include <opencv2/highgui/highgui.hpp> 
#include <opencv/cvaux.hpp> 

int main(int argc, char** argv) 
{ 
IplImage * pInpImg = 0; 

// Load an image from file - change this based on your image name 
pInpImg = cvLoadImage("my_image.jpg", CV_LOAD_IMAGE_UNCHANGED); 
if(!pInpImg) 
{ 
fprintf(stderr, "failed to load input image\n"); 
return -1; 
} 

// Write the image to a file with a different name, 
// using a different image format -- .png instead of .jpg 
if(!cvSaveImage("my_image_copy.png", pInpImg)) 
{ 
fprintf(stderr, "failed to write image file\n"); 
} 

// Remember to free image memory after using it! 
cvReleaseImage(&pInpImg); 

return 0; 
} 

所以執行期間,代碼成功生成,但總是在下面的循環結束,並停止執行:

if(!pInpImg) 
{ 
fprintf(stderr, "failed to load input image\n"); 
return -1; 
} 

有沒有人遇到這樣的問題?我怎麼能解決這個問題? (在安裝'Macports'和'Cmake'期間,我收到了一條警告,說Xcode沒有安裝,或者沒有安裝'Command Line Tools',但根據這個論壇的另一個線程,我安裝了這些從Xcode - > Preferences - > Downloads文件夾安裝Xcode 但是,仍然在安裝過程中,'Macports'和'Cmake'給了我警告,但仍然安裝了,但是這可能是問題嗎?謝謝!

+0

如果代碼編譯成功,那麼問題就與Xcode無關...... – 2012-10-07 05:40:15

+0

它與Xcode有關,因爲它與Xcode放置可執行文件的位置有關。 – SSteve

回答

4

問題是,您將圖像放入項目文件夾而不是包含可執行文件的文件夾。您可以使用可執行文件將圖像文件放入文件夾中,也可以在cvLoadImage的調用中放入圖像的完整路徑。

老版本的Xcode將可執行文件放在項目文件夾中的build/Debugbuild/Release文件夾中。較新版本的Xcode將構建產品放在DerivedData文件夾的項目文件夾中。您可以通過轉到文件找到DerivedData文件夾 - >項目設置...,然後點擊旁邊的箭頭的文件夾路徑:

DerivedData screenshot

2

在項目文件夾,進入「產品」>右鍵單擊可執行文件文件>'在Finder中顯示'>將輸入圖像放在那裏。輸出圖像('.png'文件)也會出現在這裏。