openCV环境搭建(Xcode)+入门膨胀腐蚀

Posted SuchABigBug

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了openCV环境搭建(Xcode)+入门膨胀腐蚀相关的知识,希望对你有一定的参考价值。

我本人用的是Mac下的Xcode进行环境搭建,网上有很多搭建教程写的不够详细,现在把过程列出来


一、 环境搭建

话说万事开头难,但是跟着我一步步搭建保证不难!

  1. 首先安装Homebrew,在国内有时候官网是上不去的,可以直接在terminal下执行这个命令
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  1. 通过homebrew安装opencv
brew install opencv
  1. 在Xcode下面创建一个C++文件(Command Line)

  2. 加入Dynamic Library,

    1. 然后按住control键(^)和 slash键(/)
    2. 输入/usr/local/Cellar/opencv
    3. sort by kind找到dylib mach的所有文件
      在这里插入图片描述
      在这里插入图片描述
  3. 加入Header Search Path

    1. 在buidling setting里面搜索Header Search Path
    2. 然后加入你目前opencv4的路径,如:/usr/local/Cellar/opencv/4.5.2_4/include/opencv4,必须是recursive
      在这里插入图片描述
  4. 这时就可以跑opencv了, 注意这里是绝对路径,如果把图片放到了当前路径下想直接运行的话在Xcode下设定,见下方

#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main() {
	//这里是绝对路径,不然会报width>0 &&height>0错误
    string path = "Desktop/sample.png";
    Mat img = imread(path); 
	imshow("Img", img);
    waitKey(0);
    
    return 0;
}
  1. 相对路径设定,Working Directory下设定
    在这里插入图片描述
    ,

  2. 还有一个注意事项是,如果创建了另外一个文件作为main.cpp会Build Failed,因此不能像python一样独立运行main函数,需要将上一个main.cpp Delete作为remove reference

二、初识Dilation和Erode

//
//  Dilet_Erode.cpp
//  OpenCV
//
//  Created by Henry on 2021/6/28.
//  Copyright © 2021 Henry. All rights reserved.
//

#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp>
#include <iostream>

using namespace cv;
using namespace std;


int main() {
    
    string path = "Resources/test.png";
    
    Mat img = imread(path); //Mat is matrix data type to handle all the img
    
    Mat imgGray, imgBlur, imgCanny, imgDil, imgErode ;
    
    //C++中一般把destination放在函数中,但python会将值传给变量,just keep in mind
    //python写法: imgGray = cvt(img, COLOR_BGR2Gray);
    cvtColor(img, imgGray, COLOR_BGR2GRAY);
    GaussianBlur(img, imgBlur, Size(7,7), 5, 0);
    Canny(img, imgCanny, 25, 100);
    
    Mat kernel = getStructuringElement(MORPH_RECT, Size(5,5)); //注意要是奇数3x3 or 5x5
    dilate(imgCanny, imgDil, kernel);
    erode(imgDil, imgErode, kernel); //Normally create a new kernel
    
    imshow("Img", img);
    imshow("Img Gray", imgGray);
    imshow("Img Gray", imgBlur);
    imshow("Img Gray", imgCanny);
    
    //膨胀和腐蚀的用处:我们可以很好的了解到物体的形状
    imshow("Img Dilation", imgDil);
    imshow("Img Erode", imgErode);
    
    waitKey(0);
    
    return 0;
}


创作不易,如果文章对你有帮助,动动手指点个赞 thank you~ 😃

以上是关于openCV环境搭建(Xcode)+入门膨胀腐蚀的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV图像处理篇之腐蚀与膨胀

OpenCV探索之路:膨胀腐蚀开闭运算

图像的膨胀与腐蚀——OpenCV与C++的具体实现

OpenCV 形态学操作:膨胀与腐蚀

OpenCV 形态学操作:膨胀与腐蚀

OpenCV膨胀腐蚀等操作