使用Opencv开发Mac应用配置

第一步:下载OpenCV开发包(Mac环境)
下载地址:http://opencv.org

第二步:安装Homebrew
安装文档地址:http://brew.sh/index_zh-cn.html
快速安装直接执行以下命令安装:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

第三步:安装CMake(安装好Homebrew之后,可以执行以下命令安装)
CMake是什么:是一个跨平台编译工具
第一种安装方式:下载安装(推荐使用下载安装)
下载官方:https://cmake.org/download/
第二种安装方式:执行命令安装(但是需求提前安装Homebrew)
brew install cmake

第四步:安装OpenCV
1. 进入下载OpenCV解压之后的文件夹
2. 执行命令(依次执行以下命令进行安装)
命令一:mkdir build
命令二:cd build
命令三:cmake -G "Unix Makefiles" ..
命令四:make
命令五:sudo make install
3. 执行完命令,OpenCV安装完成

第五步:新建项目测试
第一步:新建项目(Mac OS->Command Line Tools)
注意:选择C++语言
第二步:在项目build setting->search path进行配置
>Always search User paths : true
>Framework search path: /usr/local/lib
>Header Search Paths :/usr/local/include
>Library Search Paths : /usr/local/lib
第三步:在项目中新建一个文件夹,选"Add files to ...",按 command+shift+g 输入路径 /usr/local/lib,把所有的dylib库导入项目
第四步:测试运行(直接Copy代码运行)
以下为测试Demo

    #include 
    #include 
    #include 
    #include 
    #include 

    using namespace cv;
    using namespace std;

    int main( int argc, char** argv ){
            string imageName("/Users/yangshaohong/Desktop/2.jpg"); // by default
            if( argc > 1) {
                    imageName = argv[1];
            }
            Mat image;
        image = imread(imageName.c_str(), IMREAD_COLOR); // Read the file
            if( image.empty() ){
                    cout <<  "Could not open or find the image" << std::endl ;
                 return -1;
            }
            namedWindow( "Display window", WINDOW_AUTOSIZE ); // Create a window for display.
        imshow( "Display window", image );                // Show our image inside it.
            waitKey(0); // Wait for a keystroke in the window
    
            return 0;
    }

图片叠加效果实现

#include 

#include 
#include 
#include 
#include 

#include 
#include 

using namespace cv;
void opencvImageSynthesis(Mat mat_image_src, Mat mat_image_dst ){
    //第二步:创建叠加区域->开辟了一块内存空间
    float X = (mat_image_src.cols - mat_image_dst.cols) *0.5;
    float Y = (mat_image_src.rows - mat_image_dst.rows) *0.5;
    Mat mat_roi = mat_image_src(Rect2i(X, Y, mat_image_dst.cols, mat_image_dst.rows));
    
    //第三步:图片叠加->加水印->合并之后覆盖原来的图片
    //参数一:第一个图片数组
    //参数二:第一个图片数组->权重
    //参数三:第二个图片数组
    //参数四:第二个图片数组->权重
    //参数五:权重和基础之上标量值
    //参数六:输出数组->输出目标
    //dst = src1*alpha + src2*beta + gamma;
    //伪代码:mat_roi * 0 + mat_image_dst * 1 + 0
    addWeighted(mat_roi, 0, mat_image_dst, 1, 0, mat_roi);
    imshow("图片叠加", mat_image_src);
    waitKey();
}

图片模糊

void opencvImageblur(Mat mat_image_src){
    Mat mat_image_dst;
    blur(mat_image_src, mat_image_dst, Size(10,10));
    imshow("图片模糊", mat_image_dst);
    waitKey();
}

边缘检测

void opencvImageEdgeDetection(Mat mat_image_src){
    Mat mat_image_gray;
    cvtColor(mat_image_src, mat_image_gray, COLOR_BGR2GRAY);
    
    //使用3*3内核来降噪处理
    Mat mat_image_edge;
    blur(mat_image_gray, mat_image_edge, Size2i(3, 3));
    
    //进行Canny算子处理
    Canny(mat_image_edge, mat_image_edge,3, 9, 3);
    imshow("边缘检测", mat_image_edge);
    waitKey();
}

图片腐蚀

void opencvImageerode(Mat mat_image_src){
    Mat mat_image_dst;
    //案例一:图片腐蚀效果
    //第二步:进行腐蚀操作
    //参数一:腐蚀类型->矩形方式
    //参数二:腐蚀大小->范围(腐蚀单位大小)->腐蚀程度大小
    Mat mat_element = getStructuringElement(MORPH_RECT, Size2i(5, 5));
    erode(mat_image_src, mat_image_dst, mat_element);
    imshow("图片腐蚀", mat_image_dst);
    waitKey(); 
}

你可能感兴趣的:(使用Opencv开发Mac应用配置)