【学习OpenCV4】如何学习OpenCV

news2024/11/13 9:56:17

OpenCV是应用非常广泛的开源视觉处理库,在图像处理、计算机视觉和自动驾驶中有着非常重要的作用。
废话不多说,我就来讲讲OpenCV的使用和学习需要怎么做吧,大家觉得有道理的可以参考一下。
我理解的学习和使用的重点在四个方面:

第一点:需要对OpenCV的版本要有一个清晰的认识

OpenCV目前更新到了4.7.0版本,但是目前OpenCV3.x和OpenCV4.x都是比较常用的,但是3和4的版本差别比较大,所以经常有同学抄代码的时候编译报错,就像我昨天在做目标跟踪的时候,创建跟踪器,在OpenCV3.2之前的版本里面使用的方法是Tracker.create,但是在之后的版本API就变了,对于不同的算法创建的函数还不一样,例如KCF算法就是TrackerKCF_create这样,所以我们在使用OpenCV的时候需要对OpenCV的版本有一个比较清晰的认识。

第二点:需要对OpenCV的源码有一个基本的了解

OpenCV源码结构

要知道每个模块是做啥的,这样你才能知道怎么去调用这里面的算法。目前出版的OpenCV的图书基本上只对core模块、imgproc模块和highgui模块进行讲解,所以初学者很难找到一个系统的学习途径。但是去年出版了一本图书《学习OpenCV4:基于Python的算法实战》这本书对OpenCV的所有模块都进行了讲解,虽然里面的案例是以Python语言为主,但是在讲解每个算法的API的时候是将C++和Python两种语言都做了讲解,所以函数调用层面应该问题不大,这是国内外第一本系统讲解OpenCV所有模块的书,评价销量都很不错。

第三点:首先学习怎么去用

“学以致用”永远不是一句空话,对于公司来说,最重要的就是需要写出代码,解决实际问题,所以对于初学者来说,首先需要学习OpenCV包装的函数怎么去用,能解决什么实际的问题。
对于初学者来说,最头疼的问题就是环境搭建出错和代码运行出错,解决不了还极大的削减学习的信心,看书和博客经常就是从入门到放弃,没人指点真是很难受。
说到环境搭建的问题,还是要说一下***《学习OpenCV4:基于Python的算法实战》***这本书,这本书将Windows、Linux上的C++和Python开发环境搭建讲的清清楚楚,还有怎么通过源码编译的方式搭建环境都有清楚的讲解,让初学者不会被环境所卡。
还有就是这门课程也做了比较清晰的讲解,课程地址:

OpenCV入门精讲(C++/Python双语教学)

https://edu.csdn.net/course/detail/38039
该课程的优势如下:

1、C++与Python双语教学

Python语言是在计算机视觉中应用最多的一种语言,在工作中,深度学习模型的训练基本上都是使用Python语言编写的训练代码。OpenCV在这个过程中用于图像的预处理(例如图像读取、数据增强)和后处理,还可以用于显示处理的结果,功能强大,使用方便。
但是在功能的部署的时候,不管是部署在服务端还是PC端,开发语言基本上用的是C++,所以如何有效的使用OpenCV进行模型或者功能的部署尤为重要。
C++语言应用的好坏,在面试中可以看出一个面试者的工程实践能力的强弱,两种语言的开发掌握好了可以使工作如虎添翼。

2、全模块讲解

课程讲师也是图书**《学习OpenCV4:基于Python的算法实战》**作者,课程不仅采用双语教学,更是对C++的每个模块都做讲解,我们知道,很多的书其实只讲imgproc,如果你翻开一本书图像的形态学运算和图像滤波都是作为独立章节讲解的,那么这本书基本上就可以确定是只是讲解了imgproc模块,但是其他的模块在工作中也有很重要的作用。

3、讲解细致

本课程会从环境搭建开始讲解,环境搭建尤为重要。从我多年的授课经验总结来看,如果只是给了代码,很多的入门用户环境问题处理不好的话,后面的学习很难进行下去,甚至会丧失学习的信心。

4、讲义准备充分

讲义准备的充分细致,标识清楚明确,重点和疑难点突出。
在这里插入图片描述

第四点:其次学习算法原理

这个就不用我多说了,因为如果你上来先啃算法原理的话,大概率会从入门到放弃,即使你啃下来了,不自己动手写代码,还是不知道怎么去用,不知道这些算法怎么解决实际的工程问题。所以建议大家先学会怎么去用,可以选择上面的图书对照着课程学习,里面的案例讲的非常的清晰,相信大家不会觉得学得没有兴趣的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/190152.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PTA L1-019 谁先倒(详解)

前言:本期是关于谁先倒的详解,内容包括四大模块:题目,代码实现,大致思路,代码解读,今天你c了吗? 题目: 划拳是古老中国酒文化的一个有趣的组成部分。酒桌上两人划拳的方…

多模态搜索的未来:超越关键字和向量的混合搜索!

二十年前,“混合”一词仅在植物学和化学领域使用。如今,“混合”这个概念在搜索领域一片繁荣,许多搜索系统都在推出基于 AI 技术的混合搜索方案。但是,“混合搜索”是真的具有应用价值,还只是流行的一阵风呢&#xff1…

深度学习:Self-Attention与Multi-heads Attention详解

深度学习:Self-Attention与Multi-heads Attention详解IntroductionSelf - AttentionMulti-Head AttentionPosition- EncodingIntroduction Transformer 最初是由 Ashish Vaswani等人提出的一种用以完成机器翻译的 Seq2Seq 学习任务的全新网络结构,它完全…

nginx学习笔记9(小滴课堂)

业界主流高可用方案Linux虚拟服务器 LVS讲解 这部分因为需要多台虚拟机,所以我先不实操。 Keepalived核心配置讲解 echo "" > keepalived.conf是清空文件中的内容。 从机的优先级可以写的比master的优先级低一些。 准备NginxLvsKeepAlive相关软件环境 …

什么是最大子数组问题?

本文首发自「慕课网」,想了解更多IT干货内容,程序员圈内热闻,欢迎关注! 作者| 慕课网精英讲师 JdreamZhang 最大子数组(Max Subarray)问题,是计算机科学与技术领域中一种常见的算法问题&#…

CVE-2022-26135 Atlassian Jira Mobile Plugin SSRF漏洞分析

漏洞描述 6月29日,Atlassian官方发布安全公告,在Atlassian Jira 多款产品中存在服务端请求伪造漏洞(SSRF),经过身份验证的远程攻击者可通过向Jira Core REST API发送特制请求,从而伪造服务端发起请求,从而导致敏感信息…

【青训营】规则引擎概述和入门

本文内容总结自 字节跳动青年训练营 第五届后端组 一、规则引擎是什么 规则引擎是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并且使用预定义语义模块编写业务决策。接受数据输入,解释业务规则,并且…

Python接口测试实战5(上) - Git及Jenkins持续集成

本节内容接上节内容:在框架搭建好的基础上注册Github并新建仓库使用Git上传项目Jenkins的安装Jenkins接口测试项目的配置注册Github并新建仓库Git简介Git(读音为/gɪt/。)是一个开源的分布式版本控制系统版本控制: 对项目及代码记录每次提交和修改&#…

【Docker】(六)使用network完成容器间的网络通信

1.前言 本系列文章记录了从0开始学习Docker的过程,Docker系列历史文章: (一)基本概念与安装使用 (二)如何使用Docker发布一个SpringBoot服务 (三)使用registry远程镜像仓库管理镜像…

12、特征值与特征向量

目录 一、特征值和特征向量的定义 二、特征值和特征向量的相关函数 三、特征值和特征向量的计算 一、特征值和特征向量的定义 假设A是一个nn的矩阵,A的特征值问题就是找到下面方程组的解: 其中,λ为标量,V为矢量,若…

【堆的认识及其优先级队列】java代码实现,保姆级教程学习堆和优先级队列

前言: 大家好,我是良辰丫💞💞⛽,我们又见面了,前面我们讲了用链表实现的二叉树,今天我们来接触堆的概念,堆是一种特殊的二叉树,只不过咱们的对底层原理是数组&#xff0c…

大数据监控平台-Prometheus监控Hadoop

简介 本篇主要是使用jmx配合Prometheus监控大数据平台 前提 链接:https://pan.baidu.com/s/1c6nsjOKw4-a_Wqr82l0QhQ 提取码:yyds --来自百度网盘超级会员V5的分享 先安装好Prometheus Flink(Pometheus监控)_顶尖高手养成计划的博客-CSDN博客_${en…

金融实践 | 信创存储 打造安全可控的金融数据底座

本文刊登于《金融电子化》杂志 2023 年 1 月上,作者为中国出口信用保险公司信息科技部张倩,曲文非,庞松松,康达。 2022 年初,中国人民银行《金融科技发展规划(2022—2025 年)》和银保监会《关于…

JAVA语言实验 实验 ( 二 )

JAVA语言实验 :实验 ( 一 ) JAVA语言实验 :实验 ( 二 ) JAVA语言实验 :实验 ( 三 ) 一、实验目的 (1)熟悉 Java 图形界面的基本设计。 (2)熟悉 Java 界面的菜…

【LeetCode每日一题】【2023/1/31】2319. 判断矩阵是否是一个 X 矩阵

文章目录2319. 判断矩阵是否是一个 X 矩阵方法1:直接遍历2319. 判断矩阵是否是一个 X 矩阵 LeetCode: 2319. 判断矩阵是否是一个 X 矩阵 简单\color{#00AF9B}{简单}简单 如果一个正方形矩阵满足下述 全部 条件,则称之为一个 X 矩阵 : 矩阵对…

spring boot文档阅读笔记——02

spring boot文档阅读笔记——01 目录标题一、日志(一)slf4j logback(spring boot默认方式)1. 获取日志对象方式:2. 设置日志级别:3. 设置日志格式:4. 输出到日志文件:5. 日志文件设置…

关于python的mediapipe库踩过的坑

大家好,我是csdn的博主:lqj_本人 这是我的个人博客主页:lqj_本人的博客_CSDN博客-微信小程序,前端,vue领域博主lqj_本人擅长微信小程序,前端,vue,等方面的知识https://blog.csdn.net/lbcyllqj?spm1000.2115.3001.5343 哔哩哔哩欢迎关注&…

Nginx 常用配置汇总!

众所周知,Nginx 是 Apache服务不错的替代品。其特点是占有内存少,并发能力强,事实上 Nginx 的并发能力在同类型的网页服务器中表现较好,因此国内知名大厂例如:淘宝,京东,百度,新浪&a…

1.10 golang 切片Slice

1. 切片Slice 需要说明,slice 并不是数组或数组指针。它通过内部指针和相关属性引用数组片段,以实现变长方案。 1. 切片:切片是数组的一个引用,因此切片是引用类型。但自身是结构体,值拷贝传递。2. 切片的长度可以改变…

零基础机器学习做游戏辅助第六课--猫狗数据集认识卷积神经网络(二)

一、初识卷积 上一课我们已经将图像数据进行了预处理,这节课的重点就是学习卷积神经网络,到底什么是卷积,我们看图 input是我们输入的图像,Kernel是我们设置的3x3卷积核,卷积层将图像和卷积核进行计算提取特征输出神经元。