OpenCV第 1 课 计算机视觉和 OpenCV 介绍
文章目录
- 第 1 课 计算机视觉和 OpenCV 介绍
- 1.机器是如何“看”的
- 2.机器视觉技术的常见应用
- 3.图像识别介绍
- 4. 图像识别技术的常见应用
- 5.OpenCV 介绍
- 6.图像在计算机中的存储形式
第 1 课 计算机视觉和 OpenCV 介绍
1.机器是如何“看”的
我们人类可以通过眼睛看到五颜六色的世界,是因为人眼的视觉细胞中存在分别对红、绿、蓝敏感的 3 种细胞。其中的光感色素根据光线的不同进行不同比例的分解,从而让我们识别到各种颜色。
对人工智能而言,学会“看”也是非常关键的一步。那么机器人是如何看到这个世界的呢?这就涉及到人工智能方向重要的分支–机器视觉。
机器视觉即用机器人代替人眼来做测量和判断,通过机器视觉产品(即图像摄取装置,分 CMOS 和 CCD 两种)将被摄取的目标转换成图像信号,传送给专用的图像处理系统,根据像素分布和亮度、颜色等信息,转变成数字化信号。
图像系统对这些信号进行各种运算来抽取目标的特征,进而根据判别的结果来控制现场的设备动作。
2.机器视觉技术的常见应用
随着人工智能的推进、5G 时代的到来,中国正成为世界机器视觉发展最为活跃的地区之一。机器视觉技术的应用范围涵盖工业、农业、军事、医药、航天、交通、科研、安防等多个行业。下面我们来看看这项技术常见的应用领域:
1) 智慧交通
城市交通拥堵情况日益严重,如何快速有效地检测拥堵状态对于解决这个问题具有极其重要的意义。机器视觉在交通领域上的应用,越来越常见,也发挥着越来越重要的作用。
例如,2016 年杭州萧山试点的“城市大脑”人工智能系统便是一个典型应用。通过对监控摄像头、红绿灯每天产生的海量数据进行自我管理,对红绿灯进行统筹调节,使得车辆在高架路上的通行时间平均缩短 5 分钟,在普通道路上的车速提高 15%-20%。
2) 智能家居
机器视觉在智能家居方面的应用,与我们的生活密切相关。人工智能技术的运用,使得我们的家电越来越“聪明”。而视觉模块就相当于智能家电的“眼睛”,是感知层最为重要的核心器件之一。
普通家电主要是通过遥控器、APP 进行操控。在增加了摄像头、语音识别、语音合成等感知模块后,家电产品便能够“看懂”、“听懂”、“说出” ,和用户进行交流,了解用户需求。
例如,人脸识别门禁系统能够与室内的空调、热水器、电灯等家电结合起来,实现对屋主与陌生人进行识别、区分,从而控制大门及家电的开关。
3.图像识别介绍
图像识别技术是人工智能的重要领域。它是一种利用计算机对图像进行处理、分析,以识别各种不同模式的目标和对象的技术。
正如我们人眼识别图像,往往是从变化最大或突然改变的地方开始,从一个特征到下一个特征。大脑控制眼睛采集图像的主要特征,排除冗杂的非必要信息,再将主要特征的信息整合成完整的视觉映象。
计算机的图像识别与人眼识别图像的原理相同,识别过程大同小异,大致可分为四个步骤:
1) 信息获取:通过传感器将光信号、声音信号等转换为电信号,即对基本信息进行获取。
2) 图像预处理:主要指采用平滑、去噪等手段对图像进行处理,突出图像的主要特征。
3) 特征抽取和选择:在模式识别中,抽取和选择图像特征。这是图像识别过程中的关键步骤之一。
4) 图像分类:根据训练结果制定识别规则,即设计分类器,得到特征的主要种类,进而使图像识别的辨识率不断提高
4. 图像识别技术的常见应用
在 AI 领域,图像识别技术占据着极为重要的地位。随着计算机技术与信息技术的不断发展,图像识别技术的应用范围也在不断拓宽。
1) 遥感图像识别
航空遥感和卫星遥感图像通常采用图像识别技术进行加工,提取有用信息。该技术主要用于地形地质探测、气象卫星云图处理、环境污染检测等。
2) 机器视觉领域
图像处理作为热门研究课题–人工智能的重要组成部分,其应用非常广泛,并且与我们的生活紧密相连。例如快递无人车、家庭服务智能机器人、扫地机器人、玩具机器人等。
5.OpenCV 介绍
OpenCV(Open Source Capture Vision)是一个免费的计算机视觉库。它可以处理图像和视频的各种任务,比如显示摄像头采集到的画面以及让机器人识别现实生活中的物体。

虽然 Python 自带图像处理库 PIL,但是其功能比 OpenCV 逊色很多。OpenCV 提供完整的 Python 接口,而且在我们提供的镜像系统中已经集成 Python3.5 和 opencv-python 库文件,大家可以直接使用这个强大的计算机视觉库。
6.图像在计算机中的存储形式
在识别到图像后,计算机是如何存储不同图像的呢?
一般来说,图像是由一个个像素点构成,而每个像素点又可以用范围在 0-255 的 R、G、B 分量表示。OpenCV 则将每个像素用一个三元数组存储起来,这便可以记录图像的全部信息。另外,我们需要注意 OpenCV 在记录 RGB 图像三个颜色通道的数据时,记录顺序会变为 BGR。
此外,其它标准(例如 HSV)的图像,也是通过多元数组的形式进行存储。OpenCV图像是.array 类型的二维或三维数组,8 位的灰度图像(只有黑,白色的图像)是一个二维数组,24 位的 BGR 图像是一个三维数组。
比如,对于一个 BGR 图像来说,“image[0,0,0]”元素的第一个值表示像素的 Y 轴坐标或者行号(0 代表顶部);第二个值代表像素的 X 轴坐标或列号(0 表示最左边);第三个值表示颜色通道。
这些记录图像的数组和普通的 Python 数组一样可以单独访问,从而可以获得某个颜色通道的数据,或截取图像某个区域的图像。
相关文章:
OpenCV第 1 课 计算机视觉和 OpenCV 介绍
文章目录 第 1 课 计算机视觉和 OpenCV 介绍1.机器是如何“看”的2.机器视觉技术的常见应用3.图像识别介绍4. 图像识别技术的常见应用5.OpenCV 介绍6.图像在计算机中的存储形式 第 1 课 计算机视觉和 OpenCV 介绍 1.机器是如何“看”的 我们人类可以通过眼睛看到五颜六色的世界…...
C++面试:stl的栈和队列介绍
目录 栈 栈(stack)的声明: push(): 将元素推入栈顶 pop(): 弹出栈顶元素 top(): 访问栈顶元素,但不弹出 empty(): 检查栈是否为空 size(): 返回栈中元素的数量 …...
从0开始学习C++ 第十二课:指针强化
第十二课:指针强化 学习目标: 理解常量指针与指针常量的区别。学习如何使用函数指针。掌握指针与数组的高级使用技巧。 学习内容: 常量指针与指针常量 概念: 常量指针是一个指向常量的指针,这意味着不能通过这个指针…...
mongodb和python交互
1. mongdb和python交互的模块 pymongo 提供了mongdb和python交互的所有方法 安装方式: pip install pymongo 2. 使用pymongo 2.1 导入pymongo并选择要操作的集合 数据库和集合能够自动创建 2.1.1 无需权限认证的方式创建连接对象以及集合操作对象 from pymongo import Mong…...
力扣279. 完全平方数
动态规划 思路: 假设 dp[i] 为最少组成数 i 的平方数个数;则其上一个状态为 dp[i - j^2] 1,1 为 j^2: 即 i 的最少完全平方数 i - j^2 的最少完全平方数 1,其中 j^2 < i 为最接近 i 的平方数;初始值…...
【C++】list容器功能模拟实现
介绍 上一次介绍了list队容器的迭代器模拟,这次模拟实现list的简单功能,尤其要注意构造函数、析构函数、以及赋值运算符重载的实现。 list容器需要接纳所有类型的数据,因此,结构设置与迭代器设置同理,需要引入结点&…...
linux 安装ffmpeg
一、下载 ffmpeg-4.3.1 下载地址:链接:https://pan.baidu.com/s/1xbkpHDfIWSCbHFGJJHSQcA 提取码:3eil 二、上传到服务器root目录下 三、给ffmpeg-4.3.1 读写权限 chmod -R 777 /root/ffmpeg-4.3.1 四、创建软连接 1.进入/bin 目录 2.…...
激光雷达行业梳理2-产业链、公司、未来展望
四、产业链及竞争格局 激光雷达产业链可以分为上游(光学和电子元器件)、中游(集成激光雷达)、下游(不同应用场景)。其中 上游即激光发射、激光接收、扫描系统和信息处理四大部分,主要包括激光器…...
Java 设计者模式以及与Spring关系(四) 代理模式
目录 简介: 23设计者模式以及重点模式 代理模式(Proxy Pattern) 静态代理示例 spring中应用 动态代理 1.基于JDK的动态代理 target.getClass().getInterfaces()作用 内名内部类写法(更简洁,但不推荐) 2.基于CGLIB实现 spring中应用 …...
PHP编程实践:实际商品价格数据采集
引言 在电子商务领域,对商品价格进行数据采集和对比是一项常见的需求。本文将介绍如何使用PHP编程语言实现对1688和淘宝商品价格数据的采集和对比,帮助读者了解实际的编程实践过程。 一、数据采集原理 数据采集是指从互联网上获取数据的过程ÿ…...
有效防范网络风险的关键措施
在数字化时代,企业面临着日益复杂和频繁的网络风险。提高员工的网络安全意识是防范网络威胁的关键一步。本文将探讨企业在提升网络安全意识方面可以采取的措施,以有效预防潜在的网络风险。 1. 开展网络安全培训:企业应定期组织网络安全培训&…...
Spring Boot整合webservice
Spring Boot整合webservice 前言1.整合依赖2.建立暴露接口2.实现类 3.发布服务4.查看打完收工! 前言 工作中遇到的问题,由于下游系统属于第三方系统,使用的是soap webservice,同时也在开发,虽然也发布了一套webservic…...
Qt拖拽事件简单实现
1.相关说明 重写resizeEvent(这个按需重写)、dragEnterEvent(拖拽事件函数)、dropEvent(放下事件函数),可以将本地图片拖拽到label标签中 2.相关界面 3.相关代码 #include "widget.h" #include "ui_widget.h" #include <QDragEnterEvent>…...
上门回收小程序,打造回收新模式
近年来,我国一直秉持着环保绿色的发展理念,为了减少资源浪费,旧物回收成为了人们处理废弃物品的方式。目前,我国回收市场规模大约能达到3.58亿元,在我国经济的稳定增长和环保意识的提高下,回收市场规模还将…...
unity项目《样板间展示》开发:火焰和UI设计
第二章:火焰和UI设计 前言一、火焰模型管理灶台火焰壁炉火焰 二、电视机播放三、UI设计结语 前言 这次带大家从0到1做一个unity项目:《样板间展示》。 顾名思义,项目内容是展示样板间,即玩家可以与房间中的物体、家具进行交互。 至…...
即插即用篇 | UniRepLKNet:用于音频、视频、点云、时间序列和图像识别的通用感知大卷积神经网络 | DRepConv
大卷积神经网络(ConvNets)近来受到了广泛研究关注,但存在两个未解决且需要进一步研究的关键问题。1)现有大卷积神经网络的架构主要遵循传统ConvNets或变压器的设计原则,而针对大卷积神经网络的架构设计仍未得到解决。2)随着变压器在多个领域的主导地位,有待研究ConvNets…...
MPU6050传感器—姿态检测
本节主要介绍以下内容: 姿态检测的基本概念 姿态传感器的工作原理及参数 MPU6050传感器介绍 实验:获取MPU6050原始数据 实验:移植官方DMP例程 一、姿态检测基本概念 1.1 姿态 在飞行器中,飞机姿态是非常重要的参数&#x…...
PaddleOCR封装,在线服务化部署实战(python部署,超新手教程)
OCR,即光学字符识别(Optical Character Recognition),是一种将图像中的文字转换为机器编码文字的技术。这种技术可以识别和转换各种来源的文本,包括扫描文档、照片中的文字、手写笔记等。光学字符识别(OCR&…...
采集B站up主视频信息
一、网页信息(示例网址:https://space.bilibili.com/3493110839511225/video) 二、查看响应数据 三、查看数据包内容 四、相关代码(代码内容未进行翻页爬取) # Time: 2024/1/19 16:42 # Author: 马龙强 # File: 采集B…...
Laykefu客服系统 任意文件上传漏洞复现
0x01 产品简介 Laykefu 是一款基于workerman+gatawayworker+thinkphp5搭建的全功能webim客服系统,旨在帮助企业有效管理和提供优质的客户服务。 0x02 漏洞概述 Laykefu客服系统/admin/users/upavatar.html接口处存在文件上传漏洞,而且当请求中Cookie中的”user_name“不为…...
网络六边形受到攻击
大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...
eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)
说明: 想象一下,你正在用eNSP搭建一个虚拟的网络世界,里面有虚拟的路由器、交换机、电脑(PC)等等。这些设备都在你的电脑里面“运行”,它们之间可以互相通信,就像一个封闭的小王国。 但是&#…...
DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径
目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...
模型参数、模型存储精度、参数与显存
模型参数量衡量单位 M:百万(Million) B:十亿(Billion) 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的,但是一个参数所表示多少字节不一定,需要看这个参数以什么…...
Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...
【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...
系统设计 --- MongoDB亿级数据查询优化策略
系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log,共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题,不能使用ELK只能使用…...
【项目实战】通过多模态+LangGraph实现PPT生成助手
PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...
oracle与MySQL数据库之间数据同步的技术要点
Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异ÿ…...
Go 并发编程基础:通道(Channel)的使用
在 Go 中,Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式,用于在多个 Goroutine 之间传递数据,从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...
