`
haoningabc
  • 浏览: 1478067 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

在mac下编译opencv的helloworld

阅读更多
环境问题总是头疼
参考
http://www.cnblogs.com/sook/archive/2013/08/15/3259317.html
http://blog.csdn.net/china_lzn/article/details/8363660
http://www.devtang.com/blog/2012/10/27/use-opencv-in-ios/

预备工作:
1.下载Homebrew  在Terminal中输入:
ruby -e "$(curl -fsSkL raw.github.com/mxcl/homebrew/go)"
2.安装cmake       在Terminal中输入:
brew install cmake
开始安装opneCV
3.安装openCV     在Terminal中输入:
brew install opencv
如果出现 
Error: No available formula for opencv 
在输入brew install opencv前  先输入
brew tap homebrew/science
检查 Xcode->Preference->Downloads 下载Command Line Tools

之后会在
/usr/local/include下面找到opencv和opencv2的目录
在/usr/local/lib下面找到一堆libopencv的东西
设置xcode
xcode-->Build Settings
Library Search Paths   /usr/local/lib  这里有libopencv等一堆
User Header Search Paths   /usr/local/include

注意Build setting中的
Build Options 中有个 Compiler for c/c++/Objective-C
可能会用到brew install gcc

引入libopencv的包
在XCode中你的工程下建立一个NewGroup(方法:右键你的工程(左上,蓝色的那个)然后点击“New Group”)

然后,打开你的“Finder”(就是你mac下面那个条上,长的像人脸那个图标)然后此时,你同时按住  Shift  Command  g  这三个建, 然后会弹出来一个对话框,你在里输入“/usr/local”然后回车,它会转入local文件夹下,然后你按如下顺寻进入: Cellar-->opencv-->2.4.3-->lib  你现在已经进到了lib文件夹啦,你会看到一大堆以“dylib”结尾的文件,这些就是“动态库”,然后你找到以下三个动态库:

       [a]    libopencv_core.2.4.3.dylib 

       [b]    libopencv_highgui.2.4.3.dylib

       [c]    libopencv_ml.2.4.3.dylib

把它们选中后(按住command建就可以多选)点住,直接拖到你在XCode中刚建好的那个NewGroup文件夹里,然后XCode会弹出个对话框,注意,不要勾选 “Copy items into destination group's folder (if needed)”, 然后点击“Finish”

代码
//
//  main.cpp
//  testopencv
//
//  Created by xiao7 on 14-10-12.
//  Copyright (c) 2014年 killinux. All rights reserved.
//

#include <iostream>

#include <opencv/highgui.h>

#include <opencv/cv.h>

int main(int argc, char** argv)

{
    
    cvNamedWindow("Image", CV_WINDOW_AUTOSIZE);
    
    IplImage *img=cvLoadImage("/Users/xiao7/Desktop/aaa.jpg", CV_LOAD_IMAGE_ANYCOLOR); //一定注意:在mac下,这里要填写对你图片的路径哦!
    
    cvShowImage("image", img);
    
    cvWaitKey(0);
    
    cvReleaseImage(&img);
    
    cvDestroyWindow("image");
    
    return 0;
    
}




###########最重要的是三个库
target_link_libraries(test opencv_core)
target_link_libraries(test opencv_highgui)
target_link_libraries(test opencv_ml)

helloworld代码:
#include "opencv2/opencv.hpp"
#include "opencv2/highgui/highgui.hpp"
using namespace cv;
int main(int argc, char** argv) {
    //create a gui window:
    namedWindow("Output",1);
    //initialize a 120X350 matrix of black pixels:
    Mat output = Mat::zeros( 120, 350, CV_8UC3 );
    //write text on the matrix:
    putText(output,
            "Hello World :)",
            cvPoint(15,70),
            FONT_HERSHEY_PLAIN,
            3,
            cvScalar(0,255,0),
            4);
    //display the image:
    imshow("Output", output);
    //wait for the user to press any key:
    waitKey(0);
    return 0;
}

如果是g++编译:
g++ -I/usr/local/Cellar/opencv@2/2.4.13.7_5/include -L /usr/local/Cellar/opencv@2/2.4.13.7_5/lib -lopencv_core  -lopencv_highgui -lopencv_ml  main.cpp

如果是cmake编译
CMakeLists.txt为
cmake_minimum_required(VERSION 2.8)
project( test )
set(OpenCV_DIR /usr/local/Cellar/opencv@2/2.4.13.7_5)
INCLUDE_DIRECTORIES("${OpenCV_DIR}/include")
LINK_DIRECTORIES("${OpenCV_DIR}/lib")

add_executable(test main.cpp)

target_link_libraries(test opencv_core)
target_link_libraries(test opencv_highgui)
target_link_libraries(test opencv_ml)

mkdir build
cd build
cmake ..
make
./test



分享到:
评论

相关推荐

    win10下vs2019编译的opencv470+opencv-contrib(python pyd文件、c++包和编译缓存)

    win10下vs2019编译的opencv470+opencv_contrib,包含opencv python版本的pyd文件和自行编译opencv470的.cache文件,各位可以下载.cache文件自己编译opencv470。所编译的opencv470中的lib和dll不是一个单独的文件,博...

    MacOS 下编译的 opencv 3.4.1 (整合opencv_contrib 3.4.1)Android SDK

    在opencv 3+的版本中,由于将SIFT,SURF这些有专利的算法单独提取到了opencv_contrib模块,因为官方给出的android sdk release版本中没有预先编译 opencv_contrib 至opencv库,要想在Android 中使用SURF, SIFT这些...

    centos7环境下编译opencv4.5.2生成的so和jar

    在编译OpenCV之前,我们需要确保系统中安装了必要的依赖项。这些通常包括C++编译器(如GCC),CMake构建工具,以及一些开发库,例如: - `gcc-c++` - `cmake` - `opencv-devel`(如果已经安装了旧版本的OpenCV) - ...

    vs2013上编译的opencv3.2.0的opencv_world版本库(含32位和64位)

    lib文件则在编译链接阶段使用,确保编译器能找到相应的函数定义。 此外,include文件夹包含头文件,这些头文件提供了OpenCV库的API接口,允许你在代码中调用OpenCV的功能。在编写代码时,通过#include指令引入相应...

    ios的opencv的helloworld

    这篇博客“ios的opencv的helloworld”可能介绍了如何在iOS应用中引入OpenCV库,并实现一个简单的HelloWorld示例。OpenCV(开源计算机视觉库)是一个强大的工具,用于图像和视频分析、处理以及计算机视觉算法的实现。...

    Windows下完整编译opencv4.5.4的c++dll

    在Windows环境下,编译OpenCV 4.5.4版本的C++动态链接库(DLL)是一项技术性较强的任务,涉及到一系列步骤和注意事项。OpenCV是一个开源计算机视觉库,广泛应用于图像处理、机器学习和深度学习等领域。在这个过程中...

    VS2010编译opencv3.1加contrib部分

    在本文中,我们将深入探讨如何使用Visual Studio 2010(VS2010)编译OpenCV 3.1版本,并且包括其 contrib 模块。OpenCV(开源计算机视觉库)是一个广泛使用的跨平台库,包含了众多用于图像处理、计算机视觉以及机器...

    vs2013上编译的opencv3.4.1的opencv_world版本库(含32位和64位)

    本资源是针对VS2013(Visual Studio 2013)编译的OpenCV 3.4.1版本的opencv_world库,包含了32位和64位的组件,方便在不同环境下使用。 首先,让我们深入了解一下VS2013(Visual Studio 2013)和vc12。VS2013是微软...

    centos7环境下编译opencv4.5.4生成的so和jar

    5. **生成Java库**:在编译完成后,Java接口的.jar文件会出现在`/usr/local/share/OpenCV/java`目录下。你可以通过添加这个目录到系统的`CLASSPATH`环境变量,使得Java程序能够找到OpenCV的Java库。 6. **验证**:...

    VS2015编译OpenCV3.2 32位lib

    1. 编译完成后,你可以在`build_32bit\install\x86\vc14\lib`目录下找到生成的32位lib文件,如`3.2Lib_x86`中所示。 2. 在你的项目中,链接这些lib文件,并设置相应的包含目录,就可以使用自编译的OpenCV 3.2库了。 ...

    【OpenCV】opencv_world455_x86_vc17 库文件(含 .lib / .dll 及其 debug 版本)

    简介:使用 cmake 编译(VS2022 / vc17)适用于 x86 架构系统的 opencv_world455 库文件。包含动态链接库(.lib)和静态链接库(.dll)及其 debug 版本。 主要文件: 1. 头文件(include) 2. 动态链接库(opencv_...

    Visual Studio 2022 版本编译 OpenCV-4.8.0 的库

    同时,确保你的系统满足所有依赖项,如Intel IPP或OpenBLAS,这些可能会在编译过程中自动下载。 总结,使用Visual Studio 2022编译OpenCV-4.8.0库涉及多个步骤,包括环境准备、CMake配置、生成项目文件、编译和安装...

    opencv_world310.lib文件

    例如,`#include &lt;opencv2/opencv.hpp&gt;` 将导入所有必要的头文件,然后在链接阶段指定"opencv_world310.lib"(或"opencv_world310d.lib")来完成编译。 5. **编译和链接**: 使用Visual Studio或其他C++编译器时,...

    windows下使用g++编译的opencv4.5.5

    在Windows环境下,使用G++编译OpenCV 4.5.5是一个涉及到多个步骤和技术的知识点集成过程。首先,OpenCV是一个开源计算机视觉库,它包含了大量的图像处理和计算机视觉功能,广泛应用于图像分析、机器学习和人工智能...

    ndk编译opencv源码

    记得在编译过程中解决可能出现的依赖问题,例如库版本不兼容、头文件找不到等问题。 通过NDK编译OpenCV源码,我们可以更好地控制OpenCV在Android上的使用,提升性能,同时也能实现更多自定义功能,为移动设备上的...

    静态编译的openCV库 可直接用

    静态库就是说,你写了一个openCV程序,想在没有openCV环境的windows系统上运行,就需要静态编译你的程序,而且静态编译的时候openCV库也要是相应的静态编译库,这样编译的时候就会把openCV中相应代码抽取出来加入到...

    在VS2015下编译的opencv4.4 GPU版本,Release的版本

    9. **跨平台兼容性**:虽然这里讨论的是在VS2015下编译的OpenCV,但OpenCV本身是跨平台的,可以在Linux、Mac OS等其他操作系统上使用。不过,GPU支持通常需要特定的硬件和驱动,例如NVIDIA的CUDA环境。 10. **持续...

    编译的opencv_world形式的opencv3.4.1+contrib3.4.1

    在本案例中,我们讨论的是一个特别编译的版本——"opencv_world3.4.1+contrib3.4.1",它是针对Visual Studio 2015(VS2015)的64位(X64)Debug版本。 首先,"opencv_world"是OpenCV的一种打包方式,它将所有模块...

    opencv_world452d.zip

    opencv_world452d.zip

    OpenCV4.5.4-X86-MSVC2019环境编译的32位动态库,带BUILD-opencv-world

    OpenCV官方只支持X64位安装,如果需要X86 32位版本需要通过源码自行编译。...OpenCV4.5.4-X86-MSVC2019环境编译的32位动态库,带BUILD_opencv_world,包含Release、Debug双版本,通过Demo验证成功,欢迎使用。

Global site tag (gtag.js) - Google Analytics