OpenCV教程——OpenCV环境配置及第一个测试代码

2023-10-27

1.OpenCV简介

OpenCV是一个计算机视觉的开源库。英文全称是:Open Source Computer Vision Library。

常用的OpenCV的核心模块:

  1. Image Process
  2. Camera Calibration and 3D Reconstruction
  3. Video Analysis
  4. Object Detection
  5. Machine Learning
  6. Deep Learning
  7. GPU Acceleration
  8. ……

官方网站:Home - OpenCV
GitHub:https://github.com/opencv

相关知识补充:

SDK:软件开发工具包(Software Development Kit)一般都是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。(资料来源:百度百科:SDK

GPU:图形处理器(Graphics Processing Unit,GPU),又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上图像运算工作的微处理器。显卡的处理器称为图形处理器(GPU),它是显卡的“心脏”,与CPU类似,只不过GPU是专为执行复杂的数学和几何计算而设计的。GPU已经不再局限于3D图形处理了,GPU通用计算技术发展已经引起业界不少的关注,事实也证明在浮点运算、并行计算等部分计算方面,GPU可以提供数十倍乃至于上百倍于CPU的性能。GPU相当于专用于图像处理的CPU,正因为它专,所以它强,在处理图像时它的工作效率远高于CPU,但是CPU是通用的数据处理器,在处理数值计算时是它的强项,它能完成的任务是GPU无法代替的,所以不能用GPU来代替CPU。(资料来源:百度百科:GPU

GPU通用计算方面的标准:目前有OpenCL、CUDA、ATI STREAM。

2.OpenCV配置

电脑环境:Mac+Clion+C++

2.1.OpenCV下载

OpenCV的两种下载方法:

  1. 官网下载(官网地址见上文)。
  2. 通过HomeBrew下载。

我个人是通过HomeBrew下载的,也推荐大家使用这种下载方式,方便包的管理和更新。具体流程见下:

2.1.1.安装HomeBrew

HomeBrew中文官方网址:HomeBrew

打开终端,输入以下命令:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

2.1.2.下载CMake

CMake官方网站:CMake

点击Download进入下载页面,选择适合的Platform进行下载,我选择的是Mac OS

但是,下载完成之后,在终端依旧无法使用cmake命令,这时需要进一步的设置:

点击How to Install For Command Line Use,出现以下提示:

选择第二种方法,在终端输入:

sudo "/Applications/CMake.app/Contents/bin/cmake-gui" --install

这样使得每次打开终端,都可以正确识别cmake命令。

当然,也可以选择使用HomeBrew下载CMake,在终端输入如下命令即可:

brew install cmake

2.1.3.下载OpenCV

使用HomeBrew下载OpenCV,在终端输入以下命令:

brew install opencv

下载的为最新版本的OpenCV,我下载的版本为4.0.1。

2.2.OpenCV在Clion中的配置

打开Clion,新建一个C++项目。

修改CMakeLists.txt

 
1
2
3
4
5
6
7
8
cmake_minimum_required(VERSION 3.13) ##cmake版本
project(CDemo2) ##项目名称
find_package(OpenCV REQUIRED)
include_directories( ${OpenCV_INCLUDE_DIRS} )
set(CMAKE_CXX_STANDARD 11)
set(SOURCE_FILES main.cpp)  ##main.cpp改为自己定义的名字
add_executable(CDemo2 ${SOURCE_FILES}) ##CDemo2改为自己的项目名称
target_link_libraries(CDemo2 ${OpenCV_LIBS})  ##CDemo2改为自己的项目名称

2.3.代码测试

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include<opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main() {
    Mat p1=imread("/Users/xinshichao/PersonalWork/C++Demo/Pictures/p1.jpeg"); //改成自己的图片路径,尽量使用绝对路径
    if(!p1.data){
        printf("could not find the image...\n");
    }
    namedWindow("output",WINDOW_AUTOSIZE);
    imshow("output",p1);
    waitKey(0);
    return 0;
}

输出结果:

OpenCV配置成功!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OpenCV教程——OpenCV环境配置及第一个测试代码 的相关文章

  • cv2.VideoWriter:请求一个元组作为 Size 参数,然后拒绝它

    我正在使用 OpenCV 4 0 和 Python 3 7 创建延时视频 构造 VideoWriter 对象时 文档表示 Size 参数应该是一个元组 当我给它一个元组时 它拒绝它 当我尝试用其他东西替换它时 它不会接受它 因为它说参数不是
  • 是否可以在 PyScript 中使用 OpenCV 模块?

    我想使用 opencv 模块 但无法导入 OpenCV 那么我该如何解决这个问题呢 顺便说一句 Pyodide 支持 OpenCV 示例代码 https i stack imgur com ahwex jpg 尚不支持 OpenCV 此时O
  • 如何在 Qt 应用程序中通过终端命令运行分离的应用程序?

    我想使用命令 cd opencv opencv 3 0 0 alpha samples cpp cpp example facedetect lena jpg 在 Qt 应用程序中按钮的 clicked 方法上运行 OpenCV 示例代码
  • OpenCV 2.2 和多 CPU - opencv_haartraining.exe 是多线程的吗?

    我在 VS 2010 上构建了 OpenCV 2 2 启用了 TBB 3 支持 我确保所有项目都有正确的 tbb lib 目录 并将 tbb lib 列为依赖项 通过隐藏 tbb dll 进行验证 果然 haartraining exe 抱
  • VideoCapture.read() 返回过去的图像

    我在跑python3 6 with openCV on the Raspberry pi OS is Raspbian 代码的大致结构如下 The image以时间间隔 3 5 分钟 捕获 被捕获image在函数中处理并返回度量 精度的种类
  • OpenCv读/写视频色差

    我试图简单地使用 openCV 打开视频 处理帧并将处理后的帧写入新的视频文件 我的问题是 即使我根本不处理帧 只是打开视频 使用 VideoCapture 读取帧并使用 VideoWriter 将它们写入新文件 输出文件看起来比输入更 绿
  • iphone opencv - 模板匹配

    我已经在我的 iphone 项目中实现了这个 OpenCV 构建 http aptogo co uk 2011 09 opencv framework for ios http aptogo co uk 2011 09 opencv fra
  • opencv水印周围的轮廓

    我想在图像中的水印周围画一个框 我已经提取了水印并找到了轮廓 但是 不会在水印周围绘制轮廓 轮廓是在我的整个图像上绘制的 请帮我提供正确的代码 轮廓坐标的输出为 array 0 0 0 634 450 634 450 0 dtype int
  • 从 NumPy 数组到 Mat 的 C++ 转换 (OpenCV)

    我正在围绕 ArUco 增强现实库 基于 OpenCV 编写一个薄包装器 我试图构建的界面非常简单 Python 将图像传递给 C 代码 C 代码检测标记并将其位置和其他信息作为字典元组返回给 Python 但是 我不知道如何在 Pytho
  • 使用卡尔曼滤波器跟踪位置和速度

    我正在使用卡尔曼滤波器 恒定速度模型 来跟踪物体的位置和速度 我测量对象的 x y 并跟踪 x y vx vy 这是有效的 但是如果在传感器读数 x y vx vy 上添加 20 mm 的高斯噪声 即使该点没有移动 只是噪声也会发生波动 对
  • 让网络摄像头在 OpenCV 中工作

    我正在尝试让我的网络摄像头在 Windows 7 64 位中的 OpenCV 版本 2 2 中捕获视频 但是 我遇到了一些困难 OpenCV 附带的示例二进制文件都无法检测到我的网络摄像头 最近我发现这篇文章表明答案在于重新编译一个文件 o
  • 旋转矩阵openCV

    我想知道如何找到框架中一组特征的旋转矩阵 我会更具体 我有 2 个具有 20 个特征的帧 假设第 1 帧和第 2 帧 我可以估计两个帧中特征的位置 例如 假设位置 x y 处的某个第 1 帧特征 并且我确切地知道它在哪里 所以假设为 x y
  • 如何在python 3.8中安装opencv-python

    我在 pycharm 中安装 opencv python 时遇到问题 打开 pycharm 后 我单击 设置 然后单击 项目解释器 单击 并搜索正确的模块 我开始安装 但失败了 Could not find a version that s
  • 尝试使使用 OpenCV 的 java 应用程序(可执行 Jar)可移植。出现不满意的链接错误

    我制作了一个应用程序 用于从网络摄像头抓取视频并使用 OpenCV 和 JavaCV 检测运动 我正在尝试使用 eclipse 导出为可执行 jar 该程序在 eclipse 中运行良好 就像我编写该程序的计算机上的 exe jar 一样
  • Python 2.7/OpenCV 3.3: cv2.initUn DistorifyMap 中出现错误。不显示不扭曲的校正图像

    我想扭曲并校正我的立体图像 为此 我在 Python 2 7 中使用了 Opencv 3 3 我使用的代码是 import cv2 import numpy as np cameraMatrixL np load mtx left npy
  • 在Spyder(Python 3.6)中导入cv2时出现导入错误

    我已经在Windows操作系统中安装了opencv 3 0 0 我已运行该应用程序并已成功将其安装在C 驱动器并还复制了cv2 pyd文件输入C Python27 Lib site packages正如我在几个教程视频中看到的那样 在我的
  • OpenCV SVM 给出奇怪的预测结果

    我对 OpenCV 和支持向量机都很陌生 我想使用 SVM 训练具有两个标签的数据集 然后预测给定集合的标签 我当前的集合包含大约 600 行 具有相等的类分布 1 为 300 行 1 为 300 行 包含 34 列 这是我当前用于设置 O
  • 使用 Brew 安装 OpenCV 永远不会完成

    所以我尝试使用 Homebrew 安装 opencv 但它不起作用 我用了brew tap homebrew science进而brew install opencv发生的情况是 gt Installing opencv from home
  • 如何计算 cv::Mat 的步幅

    我想知道如何计算步幅cv Mat 我已经更新了代码 我需要计算步幅 我不知道计算投影变换有什么问题 我得到一个cv Mat然后将其复制到unsigned int数组 然后对其进行转换 然后返回一个cv Mat待展示 cv Mat3b src
  • cv2.imdecode 始终返回 None

    我正在从存储 JPEG 图像的 sqlite BLOB 读取二进制数据 sqlite3 Binary 图像被写入数据库 img cv2 imread images image jpg c execute INSERT INTO pictur

随机推荐

  • CSAPP-深入理解计算机系统-task01计算机系统漫游

    计算机系统漫游 上 1 hello world程序的创建 运行 退出的流程 hello world程序从编写到最终执行结束需要经过下面这4个步骤 创建 create 编译 compile 运行 run 退出 exit 创建的代码如下 保存为
  • JS基础之String对象的常用方法

  • 【Git】Git commit push的时候出现了两个分支

    1 背景 是这样的 新建了一个项目 然后第一次提交到git的时候因为卡住了 然后我就关掉了IDEA 然后重新打开后提交就可以了 但是却在整个项目提交的时候出现了两个一样的分支 不一样的文件夹 而且提交到远程的时候 发现web文件夹是空的 不
  • Java SpringBoot框架面试题(入门必看)

    目录 一 SpringBoot 二 Linux 三 Redis 前言 在熟悉SpringBoot框架面试题前 需要掌握Spring家族等ssm框架的面试题 有需要的小伙伴可以翻看下面小编的这篇博客 Java SSM框架面试题 删繁就简 系统
  • 【虚拟仿真】Unity3D打包WEBGL后播放视频(VideoPlayer组件)

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 大家好 我是佛系工程师 恬静的小魔龙 不定时更新Unity开发技巧 觉得有用记得一键三连哦 一 前言 本篇文章实现Unity3D打包WEBGL后播
  • vscode中怎样格式化js代码_Vue-cli Eslint在vscode里代码自动格式化的方法

    编辑器另外一个很重要的功能就是代码格式化了 vs code默认提供常见文件的格式化 如 js html等 添加对 vue文件的格式化支持 这里我们添加对 vue 文件的格式化支持 1 安装 vetur 插件 2 在 vs code 的设置中
  • WordPress所有Dashicons图标样式和用法

    Dashicons是WordPress官方出品的用于后台的图标样式 主要用在后台右侧菜单的图标 当我们自己开发和改造后台的时候非常实用 下面列出了所有的图标 方便开发后台时使用 经常使用的两个函数是 register post type 和
  • react 16.7 hooks - effect 详解

    Effect Hook可以使得你在函数组件中执行一些带有副作用的方法 import useState useEffect from react function Example const count setCount useState 0
  • gauge自动化框架踩坑(四):在测试报告中自定义messages

    在开始之前 我觉得很有必要介绍一下print和logger 因为平时调试用的最多的就是print和看日志 当然可以打断点调试 但是我不太习惯用这个 一 print gauge控制台输出到底支不支持print 其实自己可以写个demo 看来确
  • 如何查看小程序的APPID和AppSecret

    小程序APPID可以在手机上打开小程序后 点击右上角三点 然后点击中间位置的小程序名称 进入小程序介绍页面 点击 更多资料 后 进入页面就可以看到上方有APPID 另一种方法 在微信公众平台登录自己的小程序账号 微信公众平台 在开发管理 开
  • Python基础教程,Python入门教程(超详细)

    Python由荷兰数学和计算机科学研究学会 于1990 年代初设计 作为一门叫做ABC语言的替代品 Python语法和动态类型 以及解释型语言的本质 使它成为多数平台上写脚本和快速开发应用的编程语言 目录 为什么使用Python Pytho
  • 微信小程序授权获取用户详细信息openid

    小程序获取用户的头像昵称openid之类 第一种使用wx getUserInfo直接获取微信头像 昵称 wx getUserInfo success function res that setData nickName res userIn
  • JSP基础详解

    目录 一 JSP简介 二 JSP的本质 三 JSP页面元素 1 JSP指令 2 JSP小脚本 3 JSP表达式 4 声明脚本 5 注释 四 JSP的执行过程 四 JSP九大内置对象 五 JSP四大域对象 六 JSP中的include标签 一
  • 【JVM · 调优】监控及诊断工具

    一 概述 1 背景说明 1 1 生产环境中的问题 生产环境发生了内存溢出该如何处理 生产环境应该给服务器分配多少内存合适 如何对垃圾回收器的性能进行调优 生产环境CPU负载飙高该如何处理 生产环境应该给应用分配多少线程合适 不加log 如何
  • (*(volatile unsigned int *))详解

    使用一个32位处理器 要对一个32位的内存地址进行访问 可以这样定义 define RAM ADDR volatile unsigned long 0x00000000 然后就可以用C语言对这个内存地址进行读写操作了 读 tmp RAM A
  • 常用导航坐标系 及 转换关系 (理论+程序)

    一 坐标系定义与符号约定 在捷联惯导中 涉及到多种坐标系 其中 惯性坐标系 地心地固坐标系 导航坐标系 的示意图如下 下面给出常用的坐标系的定义 1 惯性坐标系 i 系 以地球质心为原点 轴指向地球自转轴 轴位 于赤道面指向空间任意点 轴与
  • Java -------- 运算符

    目录 什么是运算符 算术运算符 加减乘除模 算数运算符 除 算数运算符 模 算数运算符 加 增量运算符 增量运算符 自增 自减运算符 关系运算符 lt gt lt gt 逻辑运算符 逻辑与 短路与 逻辑或 逻辑非 短路求值 和 遵循短路求值
  • Android studio开发Flutter常用插件

    Flutter 安装 Flutter 和 Flutter Snippets 设置中文 插件下载地址 看一下你的andio studio 是什么版本 下载插件时需要对应 下载完后 导入插件 重启 成功 CodeGlance Pro 代码缩略图
  • Flutter 中的同步与异步,我的Android美团求职之路

    Future error 创建一个执行结果为error的future factory Future error Object error StackTrace stackTrace return new Future immediateEr
  • OpenCV教程——OpenCV环境配置及第一个测试代码

    1 OpenCV简介 OpenCV是一个计算机视觉的开源库 英文全称是 Open Source Computer Vision Library 常用的OpenCV的核心模块 Image Process Camera Calibration