Python 基于 OpenCV 视觉图像处理实战 之 背景知识

news2024/11/16 18:31:59

Python  基于 OpenCV 视觉图像处理实战  之 背景知识

目录

Python  基于 OpenCV 视觉图像处理实战  之 背景知识

一、简单介绍

二、人工智能(Artificial Intelligence,AI)

三、OpenCV

四、计算机视觉任务的主要类型

五、计算机视觉是通过创建人工模型来模拟本该由人类执行的视觉任务。


一、简单介绍

Python是一种跨平台的计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。Python是一种解释型脚本语言,可以应用于以下领域: Web 和 Internet开发、科学计算和统计、人工智能、教育、桌面界面开发、软件开发、后端开发、网络爬虫。

这里使用 Python  基于 OpenCV 进行视觉图像处理,......

二、人工智能(Artificial Intelligence,AI)

人工智能(Artificial Intelligence,AI)的定义,百度百科是这样解释的:

它是一门研究和开发用于模拟和拓展人类智能的理论方法和技术手段的新兴科学技术。人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。人工智能从诞生以来,其理论和技术日益成熟,应用领域也不断扩大,可以设想,未来,人工智能带来的科技产品将会是人类智慧的“容器”。人工智能可以对人的意识、思维的信息过程进行模拟。人工智能不是人的智能,但能像人那样思考,也可能超过人的智能。

三、OpenCV

OpenCV 是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。 它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。

OpenCV用C++语言编写,它具有C ++,Python,Java和MATLAB接口,并支持Windows,Linux,Android和Mac OS,OpenCV主要倾向于实时视觉应用,并在可用时利用MMX和SSE指令, 如今也提供对于C#、Ch、Ruby,GO的支持。

OpenCV提供的视觉处理算法非常丰富,并且它部分以C语言编写,加上其开源的特性,处理得当,不需要添加新的外部支持也可以完整的编译链接生成执行程序,所以很多人用它来做算法的移植,OpenCV的代码经过适当改写可以正常的运行在DSP系统和ARM嵌入式系统中,这种移植在大学中经常作为相关专业本科生毕业设计或者研究生课题的选题。

2022年12月8日,龙芯中科宣布,近期,OpenCV 开源社区正式合入了对 LoongArch 架构支持的代码,基于龙架构自主指令系统,优化后的 OpenCV 性能显著提升。

为什么有OpenCV,它有什么优势

计算机视觉市场巨大而且持续增长,且这方面没有标准API,如今的计算机视觉软件大概有以下三种:
1、研究代码(慢,不稳定,独立并与其他库不兼容)
2、耗费很高的商业化工具(比如Halcon, MATLAB+Simulink)
3、依赖硬件的一些特别的解决方案(比如视频监控,制造控制系统,医疗设备)这是如今的现状,而标准的API将简化计算机视觉程序和解决方案的开发,OpenCV致力于成为这样的标准API。


OpenCV致力于真实世界的实时应用,通过优化的C代码的编写对其执行速度带来了可观的提升,并且可以通过购买Intel的IPP高性能多媒体函数库(Integrated Performance Primitives)得到更快的处理速度。图1为OpenCV与当前其他主流视觉函数库的性能比较。

四、计算机视觉任务的主要类型

计算机视觉的主要任务就是通过对采集的图片或视频进行处理以获得相应场景的信息。

1.物体检测

物体检测是视觉感知的第一步,也是计算机视觉的一个重要分支。物体检测的目标就是用框去标出物体的位置,并给出物体的类别。

物体检测和图像分类不一样,检测侧重于物体的搜索,而且物体检测的目标必须要有固定的形状和轮廓。图像分类可以是任意目标,这个目标可能是物体,也可能是一些属性或者场景。

2.物体识别(狭义)

计算机视觉的经典问题便是判定一组图像数据中是否包含某个特定的物体、图像特征或运动状态。这一问题通常可以通过机器自动解决,但是到目前为止,还没有哪个单一的方法能够广泛地对各种情况进行判定:在任意环境中识别任意物体。

现有技术能够很好地解决特定目标的识别,比如简单几何图形的识别、人脸识别、印刷或手写文件识别和车辆识别。而且这些识别需要在特定的环境中,具有指定的光照、背景和目标姿态等要求。

3.图像分类

一张图像中是否包含某种物体,以及对图像进行特征描述,是物体分类的主要研究内容。一般来说,物体分类算法通过手工特征或者特征学习方法对整个图像进行全局描述,然后使用分类器判断是否存在某类物体。

图像分类问题就是给输入的图像分配标签的任务,这是计算机视觉的核心问题之一。这个过程往往与机器学习和深度学习不可分割。

4.物体定位

如果说图像识别解决的是What的问题,那么物体定位解决的则是Where的问题。利用计算视觉技术找到图像中某一目标物体在图像中的位置,即定位。

目标物体的定位对于计算机视觉在安防、自动驾驶等领域的应用有着至关重要的意义。

5.图像分割

在图像处理过程中,有时需要对图像进行分割,从中提取出有价值的用于后续处理的部分,例如筛选特征点,或者分割一幅或多幅图片中含有特定目标的部分等。

图像分割指的是将数字图像细分为多个图像子区域(像素的集合,也被称为超像素)的过程。图像分割的目的是简化或改变图像的表示形式,使图像更容易被理解和分析。更精确地说,图像分割是对图像中的每个像素添加标签的一个过程,这一过程使得具有相同标签的像素具有某种共同的视觉特性。

“图像语意分割”是一个像素级别的物体识别,即每个像素点都要判断它的类别。它和物体检测的本质区别是,物体检测是一个物体级别的,它只需要一个框去框住物体的位置;而分割通常比检测更复杂。

五、计算机视觉是通过创建人工模型来模拟本该由人类执行的视觉任务。

其本质是模拟人类的感知与观察的过程。这个过程不仅是识别,而且还包含了一系列其他过程,并且最终是可以在人工系统中被理解和实现的。

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

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

相关文章

博客系统(SSM)

前端页面http://t.csdnimg.cn/zwKyG以上是之前写过的博客前端页面的内容,下面是通过SSM实现的后端内容。 目录 一.准备工作 1.1数据准备 1.2修改配置版本文件 1.3配置数据库 二.项目公共模块 2.1实体类 2.2操作数据库部分 三.功能开发 3.1博客列表 获取博…

确保电子设备稳定运行:晶振安装的详细检查方法

晶振的安装质量直接影响到电路的稳定性和可靠性,因此,检查晶振安装是否正确是非常重要的。下面,我们将介绍一些检查晶振安装是否正确的方法。 1. 检查晶振引脚的焊接质量 在检查晶振安装时,首先要确保晶振的引脚已经正确且牢固地…

stata中inlist2命令(划分区域的简洁命令)

inlist2 首先在stata命令框中输入ssc install inlist2,replace与传统的inlist命令相比,第一是没有字符串个数限制,第二是不用加引号。 常见的划分区域的stata命令 1.最原始的做法 gen area1 if province"北京市"|province"天津市"…

PolarDN的MISC题目:01,0和255详细过程

一、0和255 题目给了俩个文件,一个.txt,一个.py .txt文件中包含0和255 一个字节有八位,每一位只能储存1或0,计算机只懂二进制,所以就是2的八次方,又计算机规定从0开始计数,所以是0至255 考虑用编码转换工…

美团发布VisionLLaMA,为视觉生成和理解提供新基线

在人工智能领域,统一的模型架构对于简化模型设计、提高模型效率以及促进跨领域应用具有重要意义。近年来,大语言模型(Large Language Models, LLMs)在处理文本输入方面取得了显著的进展,其中基于变换器(Tra…

Leetcode笔记——二叉树的迭代遍历

中序遍历: 定义一个 保存中间量的栈 和一个 结果数组 1. 模板写法 注释版: 背诵版: 前序遍历 1. 中 右 左 的顺序遍历 2. 模板写法,按中 左 右 的顺序遍历 后序遍历 1. 模板写法,按左 右 中 的顺序遍历 注释版&am…

Anaconda 的一些配置

Anaconda 安装及修改环境默认位置 https://blog.csdn.net/qq_54562136/article/details/128932352 最重要的一步!!!!!改文件夹权限 Anaconda创建、激活、退出、删除虚拟环境 修改pip install 默认安装路径

鸿蒙Harmony应用开发—ArkTS声明式开发(模态转场设置:全屏模态转场)

通过bindContentCover属性为组件绑定全屏模态页面,在组件插入和删除时可通过设置转场参数ModalTransition显示过渡动效。 说明: 从API Version 10开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 不支持横竖屏切换。…

智能合约开发基础知识:最小信任机制、智能合约、EVM

苏泽 大家好 这里是苏泽 一个钟爱区块链技术的后端开发者 本篇专栏 ←持续记录本人自学两年走过无数弯路的智能合约学习笔记和经验总结 如果喜欢拜托三连支持~ 专栏的前面几篇详细了介绍了区块链的核心基础知识 有兴趣学习的小伙伴可以看看http://t.csdnimg.cn/fCD5E关于区块…

Redis高可用之哨兵模式和集群模式

Redis高可用 Redis哨兵高可用 概述 sentinel哨兵是特殊的redis服务,不提供读写服务,主要用来监控redis实例节点。 哨兵架构下client端第一次从哨兵找出redis的主节点,后续就直接访问redis的主节点 不会每次都通过sentinel代理访问redis的主…

Java开发从入门到精通(一):Java的基础语法项目案例

Java大数据开发和安全开发 Java 案例练习案例一:买飞机票案例二:开发验证码案例三:评委打分案例四:数字加密案例五:数组拷贝案例六: 抢红包案例七:找素数案例八:模拟双色球[拓展案例] Java 案例练习 案例一:买飞机票 分析: 方法是需要接收数据?需要接收机票原价、当前月份、舱…

鸿蒙Harmony应用开发—ArkTS声明式开发(通用属性:外描边设置)

设置组件外描边样式。 说明: 从API Version 11开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 outline outline(value: OutlineOptions) 统一外描边样式设置接口。 卡片能力: 从API version 11开始,该…

仿牛客网项目---Elasticsearch分布式搜索引擎

1.什么是ElasticSearch分布式搜索引擎? Elasticsearch是一个开源的分布式搜索引擎,提供实时的、高可用性的搜索和分析解决方案。它支持快速索引和搜索大规模数据,具有分布式架构、RESTful API、基于JSON的查询语言等功能,适用于各…

Asp .Net Web Forms 系列:配置图片防盗链的几种方法

通过 URL Rewrite Module 组件 URL Rewrite Module 是一个用于在 ASP.NET Web Forms 或其他基于 IIS 的 Web 应用程序中重写 URL 的强大工具。这个模块允许你将复杂的、不易于记忆或不利于搜索引擎优化的 URL 转换为更简洁、更友好的格式。通过 URL 重写,你可以提高…

Upload 上传(图片/文件),回显(图片),下载(文件)

1.前端技术:V3 Ant Design Vue 2.后端技术:Java 图片上传/回显: 文件上传回显: 表结构:单文件/图片上传为A表对文件C表 (A表field字段 对应 C表id字段) 如图:A表中的 vehicle_d…

leetcode代码记录和对比(两数相加

目录 1. 题目:2. 我的代码:3. 别人的代码:小结: 1. 题目: 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个…

世界排名第二的大语言模型,你听说过吗?

前言: 在介绍这个大语言模型之前,我们需要先来回顾一个事情,大家应该都知道,在去年 11 月,OpenAI 经历了 CEO Altman 被解雇(后又重返)的风波。而微软作为OpenAI的最大股东,直至Alt…

【DAY10 软考中级备考笔记】数据结构 图

数据结构 图 3月11日 – 天气:晴 晚上无线网络突然不能用了,花费好久弄这个,耽误了一些时间 1. 图的定义 这里需要注意完全图的定义,以及完全图的边数 这里需要注意连通图和连通分量的概念。 2. 图的存储结构 图有两种存储结构&a…

PortSwigger 基于dom的漏洞-利用 DOM 破坏来启用 XSS

进入实验随意进入一篇博客 我们可以尝试随意提交一些恶意代码看看会发生什么 很显然我们提交成功了但是我们的恶意代码貌似被过滤了 查看源码发现这里有一个过滤框架 我们打开源码分析 function loadComments(postCommentPath) {let xhr new XMLHttpRequest();xhr.onreadys…

植物病害识别:YOLO水稻病害识别/分类数据集(2000多张,2个类别,yolo标注)

YOLO水稻病害识别/分类数据集,包含疾病和正常2类,共2000多张图像,yolo标注完整,可直接训练。 适用于CV项目,毕设,科研,实验等 需要此数据集或其他任何数据集请私信