2012-10-07 68 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'文件)也会出现在这里。