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 数组一样可以单独访问,从而可以获得某个颜色通道的数据,或截取图像某个区域的图像。

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

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

相关文章

一文(10图)了解Cornerstone3D核心概念(万字总结附导图)

Cornerstone3D介绍 Cornerstone3D是一个专门为处理三维医学影像而设计的JavaScript库。 它是Cornerstone项目的一部分,旨在为医学影像社区提供高性能、可扩展且易于使用的开源Web工具,专注于提供交互式的3D医学图像浏览体验,适用于多种医学…

9款最新文生图模型汇总!含华为、谷歌、Stability AI等大厂创新模型(附论文和代码)

2023年真是文生图大放异彩的一年,给数字艺术界和创意圈注入了新鲜血液。从起初的基础图像创作跃进到现在的超逼真效果,这些先进的模型彻底变革了我们制作和享受数字作品的途径。 最近,一些大公司比如华为、谷歌、还有Stability AI等人工智能巨…

【Linux】Linux进程信号(上)

​ ​📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:Linux 🎯长路漫漫浩浩,万事皆有期待 上一篇博客:【Linux】…

【新加坡机器人学会支持】第三届工程管理与信息科学国际学术会议 (EMIS 2024)

第三届工程管理与信息科学国际学术会议 (EMIS 2024) 2024 3rd International Conference on Engineering Management and Information Science 【国际高级别专家出席/新加坡机器人学会支持】 第三届工程管理与信息科学国际学术会议 (EMIS 2024)将于2024年4月12-14日在中国洛…

算法(4)——前缀和

目录 一、前缀和的定义 二、一维前缀和 三、一维前缀和OJ题 3.1、前缀和 3.2、寻找数组中心下标 3.3、除自身以外数组的乘积 3.4、和为K的数组 3.5、和可被K整除的子数组 3.6、连续数组 四、二位前缀和 4.1、二维前缀和 4.2、矩阵区域和 一、前缀和的定义 对于一个…

40. 组合总和 II - 力扣(LeetCode)

题目描述 给定一个候选人编号的集合 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用 一次 。 注意:解集不能包含重复的组合。 输入示例 candidates [10,1,2,7,…

Oracle Apps文件系统和数据库的维护工作ADADMIN

ADADMIN主要用于Oracle Apps文件系统和数据库的维护工作,是Apps DBA常用的工具。其一级菜单的具体功能介绍如下: AD Administration Main Menu: Generate Applications Files:如果系统用户无法访问Message、Form或者Report&#…

开始学习vue2(Vue方法)

一、过滤器 过滤器(Filters)是 vue 为开发者提供的功能,常用于文本的格式 化。过滤器可以用在两个地方:插值表达式 和 v-bind 属性绑定。 过滤器应该被添加在 JavaScript 表达式的尾部,由“管道符 ”进行 调用&#…

【Leetcode 144.二叉树的前序遍历】将二叉树每个节点的值以前序遍历的顺序存入数组中

int* preorderTraversal( struct TreeNode*root, int* returnSize) { }解答代码: int TreeSize(struct TreeNode*root){return rootNULL?0:TreeSize(root->left)TreeSize(root->right)1;}void Prevorder(struct TreeNode*root,int*a,int*pi){if(rootNULL)re…

理解反向代理

反向代理是一个不可或缺的组件。 它在客户端和服务器之间充当中介,提高了安全性、负载平衡和应用性能。 一、反向代理简介 反向代理是一种服务器,它位于客户端和后端服务器之间。与常见的(正向)代理不同,反向代理代表…

宝塔面板部署MySQL并结合内网穿透实现公网远程访问本地数据库

文章目录 前言1.Mysql服务安装2.创建数据库3.安装cpolar3.2 创建HTTP隧道 4.远程连接5.固定TCP地址5.1 保留一个固定的公网TCP端口地址5.2 配置固定公网TCP端口地址 前言 宝塔面板的简易操作性,使得运维难度降低,简化了Linux命令行进行繁琐的配置,下面简单几步,通过宝塔面板cp…

【C++】list的使用

目录 1 构造1.1 无参构造1.2 构造的list中包含n个值为val的元素1.3 用[first, last)区间中的元素构造list1.4 拷贝构造 2 迭代器的使用2.1 begin end2.2 rbegin rend 3 容量操作3.1 empty size 4 获取元素4.1 front back 5 插入、删除、修改5.1 头插-push_front和尾插-push…

oracle 19c rac集群管理 ------ 日志管理

oracle 19C rac 数据库的目录结构及日志路径 在Oracle 19c RAC(Real Application Clusters)集群中,有多个组件和层级生成的日志文件,记录着集群的活动、事件和错误信息,用于故障诊断、性能优化和集群管理。以下是常见…

ubuntu 20.04 更新 autoconf 版本

前言 由于最近打算交叉编译 python,依赖 libffi 库,而交叉编译 libffi 库,由于使用的是 github 上的 libffi,又提示 autoconf 版本太低了,所以,先更新 autoconf 的版本 当前 ubuntu 20.04 上安装的 autuco…

工作三年的我在思考,前端还值得学习吗

一、聊这个话题的背景 最近准备换工作,准备了一段时间的简历后,偶然看到群里面有人发了张图片。 虽然颇有调侃的意味,但是联想起过往在公司的工作,项目架构设计向来由后端主管,领导们也基本都是后端,自己日…

消息队列RabbitMQ.02.交换机的讲解与使用

目录 RabbitMQ中交换机的基本概念与作用解析 交换机的作用: 交换机的类型: 直连交换机(Direct Exchange): 将消息路由到与消息中的路由键(Routing Key)完全匹配的队列。 主题交换机&#x…

利用Python与Flet写一个图片无损放大软件

一、前言: 将上传的图片无损放大2倍、4倍、8倍 二、利用Flet写个前端页面: 三、前端页面代码: page.title "图片无所放大"page.vertical_alignment "center"page.window_width 500 # windows width is 200 pxpage…

《小学生作文辅导》期刊投稿邮箱

《小学生作文辅导》是国家新闻出版总署批准的正规教育类期刊,适用于全国各小学语文老师事业单位及个人,具有原创性的学术理论、工作实践、科研成果和科研课题及相关领域等人员评高级职称时的论文发表(单位有特殊要求除外)。 栏目…

VMware workstation平台下配置Fedora-Server-39-1.5虚拟机网络

VMware workstation平台下配置Fedora-Server-39-1.5虚拟机网络 Fedora包含的软件以自由及开放源码许可来发布,并旨在成为该技术领域的领先者。Fedora在专注创新、抢先集成新技术、与上游Linux社区紧密工作方面拥有良好名声。该文档适用于在VMware workstation平台下…

小土堆pytorch学习笔记001

1、Pytorch环境的配置与安装。 (1)建议安装:Anaconda (2)检查显卡:GPU (3)管理环境(不同版本的pytorch 版本不同): conda create -n pytorch…