在MaxOSX10.12.4上成功安装OpenCV3但它不起作用

时间:2017-04-19 01:55:13

标签: c++ xcode macos opencv

我在网上安装了OpenCV3和brew的其他指南,

1,安装brew

usrs/local/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

2,然后我安装OpenCV3

brew install opencv3

3,安装完成后,我的OpenCV3路径为

/usr/local/Cellar/opencv3/3.2.0
#in fact this path "/usr/local/Cellar/opencv3/3.2.0" contains all 
software installed by brew, and I have also try 
to install opencv, 
its path is "/usr/local/Cellar/opencv/2.4.13.2"

4,设置我的〜/ .bash_profile文件

# Setting PATH for Python 3.6
# The original version is saved in .bash_profile.pysave

PATH="/Library/Frameworks/Python.framework/Versions/3.6/bin:${PATH}"

# Homebrew
#export PATH=/usr/local/bin:$PATH

# OpenCV3
export PATH="/usr/local/opt/opencv3/bin:$PATH"

5.1,添加“lib”和“include”路径到我的Xcode(版本8.3.1,8E1000a)

add openCV3 to "Header search paths" and "Library search Paths"

5.2,并在“构建阶段”选项卡

中添加内容

add many opencv's dylib files(which themselves in "/usr/local/Cellar/opencv/2.4.13.2/lib") and three C++ dynamic linking files here

6,运行我的C ++代码

时发生了一些错误
Mat cv_input_image = imread("image_0001.jpg");
cout << "rows:" << cv_input_image.rows << endl;
cout << "cols:" << cv_input_image.cols << endl;
cout << "channels:" << cv_input_image.channels() << endl;

它运行成功,但结果是:

rows:0
cols:0
channels:1

我的努力:

我已尝试多次在我的Macbook中使用brew和不同的设置方法安装OpenCV(我是Mac新手),所有这些都不能很好地工作,我可以成功地包含其他关于OpenCV的内容,我只是不要我不知道从哪里开始解决这个问题?

顺便说一句,我也尝试过openCV(不是openCV3),我可以将它们成功地包含在我的C ++代码中

我有一个复杂的C ++代码,第一步是读取图片,并且有一个“错误信息”:

inline
MatConstIterator::MatConstIterator(const Mat* _m)
    : m(_m), elemSize(_m->elemSize()), ptr(0), sliceStart(0), sliceEnd(0)
{
    if( m && m->isContinuous() )
    {
        sliceStart = m->ptr();
        sliceEnd = sliceStart + m->total()*elemSize;
    }
    seek((const int*)0);//   <=======something wrong here
}

我的Xcode给了我信息:

Thread 1: EXC_ARITHMETIC(code=EXC_I386_DIV, subcode=0x0)

在我的Xcode左侧,有一个Threads列表表单索引0到9,

当发生这种情况时,箭头指向索引1:“cv :: MatConstIterator :: MatConstIterator(cv :: Mat const *)”

希望得到你的帮助~~

1 个答案:

答案 0 :(得分:2)

使用Xcode编译时,可执行文件放在一些奇怪的临时文件夹中。因此,imread("image_0001.jpg")很可能会失败,因为您在此处使用相对路径(即image_0001.jpg需要与可执行文件位于同一文件夹中。要解决此问题,请尝试使用图像的绝对路径,即{ {1}}。

另一个错误可能是因为/Users/your_home/Desktop/image_0001.jpg失败后cv_image_input为空。