Mac 安装使用 OpenCV 图像处理神器

article/2025/9/15 19:01:12

大家好,我是青空。

最近在折腾图像处理相关的事情,今天就给大家分享一下,Mac 上如何安装和使用 OpenCV。

安装

方法一 使用homebrew安装

其实 Mac 上安装 OpenCV 很简单,一个命令行就能搞定。

brew install opencv

等待完成即可。

这种安装方式最为方便,且不需要各种复杂的配置。

方法二 源码编译

1、 使用homebrew 安装 cmake

brew install cmake

2、下载 opencv 源代码

Releases - OpenCV 或者 Releases · opencv/opencv (github.com)

3、使用 cmake 构建源码

a)、创建一个临时目录,我们把它命名为build_opencv,你想把生成的Makefiles、项目文件以及对象文件和输出的二进制文件放在那里,并在那里输入。

mkdir build_opencv
cd build_opencv

b)、配置。运行cmake [<一些可选参数>] <OpenCV源代码目录的路径>。

cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_EXAMPLES=ON ../opencv

c)、一些参数的描述

  • 构建类型。CMAKE_BUILD_TYPE=Release(或Debug)。
  • 使用opencv_contrib的模块进行构建,将OPENCV_EXTRA_MODULES_PATH设为<opencv_contrib>/modules的路径
  • 设置BUILD_DOCS=ON用于构建文档(需要doxygen)。
  • 设置BUILD_EXAMPLES=ON来构建所有的例子

d)、构建。从构建目录中执行make,建议分几步进行

e)、要在你基于CMake的项目中使用OpenCV,通过find_package(OpenCV)指定OpenCV_DIR=<path_to_build_or_install_directory>变量。

试运行 opencv

我这里使用 clion 创建一个hello的项目。

然后在CLion项目中的CMakeLists.txt中配置如下:

cmake_minimum_required(VERSION 3.17)
project(Hello)set(CMAKE_CXX_STANDARD 14)find_package(OpenCV)include_directories(${OpenCV_INCLUDE_DIRS})set(CMAKE_CXX_STANDARD 14)add_executable(Hello main.cpp)target_link_libraries(Hello ${OpenCV_LIBS})

然后就可以写个main.cpp验证下:

#include <iostream>
#include <opencv2/opencv.hpp>using namespace cv;
using namespace std;int main() {Mat img = imread("/Users/xxx/Desktop/l_hires.jpeg");if (img.empty()) {cout << "error" << endl;return -1;}imshow("Lena", img);waitKey(0);return 0;
}

直接运行看看能不能出现那张著名的图片。

image-20211005221359771

能够显示出图片,说明 OpenCV 正常安装使用。


http://chatgpt.dhexx.cn/article/jLoKo2e7.shtml

相关文章

sec和asec--正割和反正割函数

【功能简介】求变量的正割和反正割。 【语法格式】 1&#xff0e;Ysec (X) 计算X的正割&#xff0c;sec(x)1/cos(x)。X可以为向量、矩阵或多维数组&#xff0c;X中的元素可以为复数&#xff0c;所有表示角度的变量都采用弧度来表示。 2&#xff0e;Yasec (X) 计算X的反正割。对…

Graph Cut(图割算法)

转载自&#xff1a;http://blog.csdn.net/zouxy09/article/details/8532111 Graph cuts是一种十分有用和流行的能量优化算法&#xff0c;在计算机视觉领域普遍应用于前背景分割&#xff08;Image segmentation&#xff09;、立体视觉&#xff08;stereo vision&#xff09;、抠…

sech和asech--双曲正割和反双曲正割函数

【功能简介】求变量的双曲正割和反双曲正割。 【语法格式】 1&#xff0e;Ysech(X) 计算X的双曲正割&#xff0c;sech(x)1/cosh(x)。X可以为向量、矩阵或多维数组&#xff0c;X中的元素可以为复数&#xff0c;所有表示角度的变量都采用弧度来表示。 2&#xff0e;Yasech (X) 计…

三角函数中的正弦、余弦、正切、余切、正割、余割函数性质及常用公式

三角函数 三角函数包括正弦、余弦、正切、余切、正割、余割函数 0 基础知识 正弦&#xff08;Sine&#xff09;&#xff1a;sin A CB/CA 余弦&#xff08;Cosine&#xff09; &#xff1a;cos A AB/CA 正切&#xff08;Tangent&#xff09;&#xff1a;tan A CB/BA 余切&a…

数学 三角函数 sin 正弦、cos 余弦、tan 正切、cot 余切、sec 正割、csc 余割 简介

目录 图解定义 文字定义 三角函数诱导公式 1.三角函数诱导公式记忆方法 2.三角函数诱导公式 诱导公式一&#xff1a;终边相同的角的同一三角函数的值相等 诱导公式二&#xff1a;πα的三角函数值与α的三角函数值之间的关系 诱导公式三&#xff1a;任意角α与-α的三角…

sinx、cscx、cosx、secx以及tanx、cotx图像详解

今天在复习三角函数一章中对正切正割等图像感觉比较有意思&#xff0c;仔细梳理了以下内容&#xff1a; sin&#xff1a;sine cos&#xff1a;cosine sec&#xff1a;secant csc&#xff1a;cosecant 首先明确定义&#xff1a;让我们解释一下sec(x)和cos(x)之间的关系。sec(x)是…

正割函数(sec)

1. 定义 正割与余弦互为倒数&#xff0c;余割与正弦互为倒数。即&#xff1a; ⎧⎩⎨⎪⎪⎪⎪secθ1cosθcscθ1sinθ \left\{ \begin{split}\secθ=\frac1{\cosθ} \\\cscθ=\frac1{\sinθ} \end{split} \right.也即在几何上&#xff0c;设 △ABC &#xff0c;∠C90&#xff…

printf 输出格式、域宽

printf: 函数原型:int printf("格式控制串"&#xff0c;输出表); 返回值&#xff1a;成功则返回输出的字节数&#xff08;按终端统计&#xff09; 格式控制符: %d ---- 有符号的十进制整型数 %u ---- 无符号的十进制整型数 %hd --- short …

C语言之printf输出各种格式

基础的东西总是很容易忘&#xff0c;要经常回顾&#xff1a; printf函数调用的一般形式为&#xff1a; printf(“格式控制字符串”, 输出表列) 其中格式控制字符串用于指定输出格式。格式控制串可由格式字符串和非格式字符串两种组成。格式字符串是以%开头的字符串&#xf…

C语言scanf怎么输入字母,C语言scanf输入格式printf输出格式

1. 转化说明符 %a(%A)浮点数,十六进制数字和p-(P-)表示法(C99)%c个字符 %d个有符号十进制整数 %f浮点数(包括浮点数和doulbe)%e(%E)浮点指数输出[e-(E-)表示法]%g(%G)浮点数不显示无意义的零“ 0”“ %i有符号十进制整数(与%d相同)%u无符号十进制整数 %o八进制整…

matlab printf格式化输出,如何使用 printf 来格式化输出

当我开始学习 Unix 时,我很早就接触到了 echo 命令。同样,我最初的 Python 课程也涉及到了 print 函数。再想起学习 C++ 和 Java 时学到 cout 和 systemout。似乎每种语言都骄傲地宣称拥有一种方便的单行输出方法,并生怕这种方式要过时一样宣传它。 但是当我翻开中级教程的第…

printf输出格式

1.printf()简介 printf()是C语言标准库函数&#xff0c;用于将格式化后的字符串输出到标准输出。标准输出&#xff0c;即标准输出文件&#xff0c;对应终端的屏幕。printf()申明于头文件stdio.h。 函数原型&#xff1a; int printf ( const char * format, ... );1 返回值&…

【Python笔记】SciPy的统计模块:scipy.stats

【Python笔记】NumPy数组 【DA】数据可视化matplotlib 【Python笔记】pandas常用函数图码总结 SciPy的统计模块是scipy.stats&#xff0c;其中有一个类是连续分布的实现&#xff0c;一个类是离散分布的实现。此外&#xff0c;该模块中还有很多用于统计检验的函数。 # 导入包 f…

使用scipy.signal函数进行信号滤波

目录 1、scipy.signal.filtfilt()函数介绍2、滤波器构造函数(巴特沃斯滤波器)3、如何进行高通、低通、带通、带阻滤波 1、scipy.signal.filtfilt()函数介绍 在信号的滤波过程中&#xff0c;因为scipy.signal.filtfilt()函数可以方便快捷得实现常见的多种滤波功能&#xff0c;所…

SciPy简单应用

SciPy简单应用 SciPy是在NumPy的基础上增加了大量用于数学计算&#xff0c;科学计算以及工程计算的模块&#xff0c;包括线性代数&#xff0c;常微分方程求解&#xff0c;信号处理&#xff0c;图像处理于稀疏矩阵等。参考文档 目录 SciPy简单应用文件输入/输出&#xff1a;scip…

使用scipy来进行曲线拟合

导读 曲线拟合的应用在生活中随处可见&#xff0c;不知道大家是否还记得物理实验中的自由落体运动中下降高度与时间关系之间的探究&#xff0c;在初速度为0的情况下&#xff0c;我们想要探究下降高度与时间的关系。 我们当时采用的方法是通过设置不同的下降时间来记录下降的高…

SciPy 优化

章节 SciPy 介绍SciPy 安装SciPy 基础功能SciPy 特殊函数SciPy k均值聚类SciPy 常量SciPy fftpack(傅里叶变换)SciPy 积分SciPy 插值SciPy 输入输出SciPy 线性代数SciPy 图像处理SciPy 优化SciPy 信号处理SciPy 统计 优化是指在某些约束条件下&#xff0c;求解目标函数最优解的…

Python scipy拟合分布

scipy 拟合分布文档&#xff1a;https://docs.scipy.org/doc/scipy/reference/tutorial/stats.html#fitting-distributions 代码&#xff1a; import numpy as np from scipy import statsnumber np.random.normal(10, 5, 4000) # 生成均值为10&#xff0c;方差为5的正态分布…

scipy求极值代码

1.求解一元函数极值 1.1 导包&#xff1a; from scipy.optimize import fmin这个函数主要用于求某个点附近的极小值。相应的&#xff0c;如果要求某个点附近的最大值&#xff0c;可以使用↓ from scipy.optimize import fmax1.2 定义求导函数 def f(x):return x(x-1) #retu…

scipy.interpolate插值

python SciPy库依赖于NumPy&#xff0c;提供了便捷且快速的N维数组操作。 可以实现插值&#xff0c;积分&#xff0c;优化&#xff0c;图像处理&#xff0c;特殊函数等等操作。 参考官方文档&#xff1a; Interpolation (scipy.interpolate) — SciPy v1.7.1 Manualhttps:/…