openCV环境搭建(Xcode)+入门膨胀腐蚀
Posted SuchABigBug
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了openCV环境搭建(Xcode)+入门膨胀腐蚀相关的知识,希望对你有一定的参考价值。
我本人用的是Mac下的Xcode进行环境搭建,网上有很多搭建教程写的不够详细,现在把过程列出来
一、 环境搭建
话说万事开头难,但是跟着我一步步搭建保证不难!
- 首先安装Homebrew,在国内有时候官网是上不去的,可以直接在terminal下执行这个命令
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- 通过homebrew安装opencv
brew install opencv
-
在Xcode下面创建一个C++文件(Command Line)
-
加入Dynamic Library,
- 然后按住
control键(^)和 slash键(/)
- 输入
/usr/local/Cellar/opencv
- sort by kind找到dylib mach的所有文件
- 然后按住
-
加入Header Search Path
- 在buidling setting里面搜索Header Search Path
- 然后加入你目前opencv4的路径,如:
/usr/local/Cellar/opencv/4.5.2_4/include/opencv4
,必须是recursive
-
这时就可以跑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;
}
-
相对路径设定,Working Directory下设定
-
还有一个注意事项是,如果创建了另外一个文件作为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)+入门膨胀腐蚀的主要内容,如果未能解决你的问题,请参考以下文章