Python 全栈体系【四阶】(二十五)

第五章 深度学习

二、计算机视觉基本理论

请添加图片描述

11. 图像梯度处理

11.1 什么是图像梯度

图像梯度计算的是图像变化的速度。对于图像的边缘部分,其灰度值变化较大,梯度值也较大;相反,对于图像中比较平滑的部分,其灰度值变化较小,相应的梯度值也较小。一般情况下,图像梯度计算的是图像的边缘信息。

11.2 模板运算

模板(滤波器)是一个尺寸为 n*n 的小图像 W(n 一般取奇数,称为模板尺寸),每个位置上的值 w 被称为权重。在进行计算时,将模板的中心和像素 P 对齐,选取原始图像中和模板相同范围的邻域 N 的像素值作为输入。

模板卷积的计算是将对齐后的对应位置像素相乘,再进行累加作为像素 P 位置的输出值。记原始图像的像素灰度值为 s, 计算后的值为 d, 则 P 点的输出值 d = ∑ w i s i ∑ w i d = \frac{\sum w_i s_i}{\sum w_i} d=wiwisi

模板排序的计算时将邻域 N 的像素值进行排序,选择特定次序的灰度值,作为像素 P 位置的输出值,如最大值、最小值、中位数等。

11.3 均值滤波

均值滤波指模板权重都为 1 的滤波器。它将像素的邻域平均值作为输出结果,均值滤波可以起到图像平滑的效果,可以去除噪声,但随着模板尺寸的增加图像会变得更为模糊。经常被作为模糊化使用。

请添加图片描述

11.4 高斯滤波

为了减少模板尺寸增加对图像的模糊化,可以使用高斯滤波器,高斯滤波的模板根据高斯分布来确定模板系数,接近中心的权重比边缘的大。5 的高斯滤波器如下所示:
请添加图片描述

11.5 中值滤波

中值滤波属于模板排序运算的滤波器。中值滤波器将邻域内像素排序后的中位数值输出代替原像素值。它在实现降噪操作的同时,保留了原始图像的锐度,不会修改原始图像的灰度值。

中值滤波的使用非常普遍,它对椒盐噪声的抑制效果很好,在抑制随机噪声的同时能有效保护边缘少受模糊。但中值滤波是一种非线性变化,它可能会破坏图像中线性关系,对于点、线等细节较多的图像和高精度的图像处理任务中并不太合适。

请添加图片描述

11.6 边沿检测

通过梯度计算可以获取图像中细节的边缘。为在锐化边缘的同时减少噪声的影响,通过改进梯度法发展出了不同的边缘检测算子:

  • 一阶梯度:Prewitt 梯度算子、Sobel 梯度算子
  • 二阶梯度:Laplacian 梯度算子
    请添加图片描述

边沿检测效果
请添加图片描述

11.7 锐化

图像锐化与图像平滑是相反的操作,锐化是通过增强高频分量来减少图像中的模糊,增强图像细节边缘和轮廓,增强灰度反差,便于后期对目标的识别和处理。锐化处理在增强图像边缘的同时也增加了图像的噪声。

将求取的边缘按照一定系数比例叠加到原始图像上,即可实现对图像的锐化操作。例如使用 Laplacian 梯度算子进行锐化操作的模板,其中 A 是大于等于 1 的系数。

请添加图片描述

请添加图片描述

12. 图像轮廓

12.1 什么是图像轮廓

边缘检测虽然能够检测出边缘,但边缘是不连续的,检测到的边缘并不是一个整体。

图像轮廓是指将边缘连接起来形成的一个整体,用于后续的计算。

图像轮廓是图像中非常重要的一个特征信息,通过对图像轮廓的操作,我们能够获取目标图像的大小、位置、方向等信息。

图像轮廓操作包括:查找轮廓、绘制轮廓、轮廓拟合等。

12.2 查找和绘制轮廓

一个轮廓对应着一系列的点,这些点以某种方式表示图像中的一条曲线,将这些点绘制成不同样式的线条,就是轮廓查找与绘制。

在这里插入图片描述

12.3 轮廓拟合

在计算轮廓时,可能并不需要实际的轮廓,而仅需要一个接近于轮廓的近似多边形,绘制这个近似多边形称之为轮廓拟合。

12.4 矩形包围框

在这里插入图片描述

12.5 最小包围圆形

在这里插入图片描述

12.6 最优拟合椭圆

在这里插入图片描述

12.7 逼近多边形

在这里插入图片描述

13. 综合案例

请添加图片描述

13.1 任务描述

我们对图像中的目标进行分析和检测时,目标往往具有一定的倾斜角度,自然条件下拍摄的图像,完全平正是很少的。因此,需要将倾斜的目标“扶正”的过程就就叫做图像矫正。该案例中使用的原始图像如下图所示。
在这里插入图片描述

13.2 代码

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

13.3 校正效果

在这里插入图片描述

14. 图像预处理在 AI 中的应用

14.1 图像预处理在 AI 中的应用

图像预处理的目的,是让图像数据更适合 AI 模型进行处理,例如调整大小、颜色。

通过图像预处理技术,实现数据集的扩充,这种方法称为数据增强。数据增强主要方法有:缩放,拉伸,加入噪点,翻转,旋转,平移,剪切,对比度调整,通道变化。

14.2 图像数据增强

请添加图片描述

14.3 纯图像技术的缺陷

到目前为止,我们使用的基本是纯图像技术,对图像大小、颜色、形状、轮廓、边沿进行变换和处理,但这些技术都有一个共同的缺点,即无法理解图像内容和场景,要实现这个目标,必须借助于深度学习技术。

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

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

相关文章

【鸿蒙开发】ArkTS和组件

1. 初识ArkTS语言 ArkTS是HarmonyOS优选的主力应用开发语言。ArkTS围绕应用开发在TypeScript生态基础上做了进一步扩展,继承了TS的所有特性。 当前,ArkTS在TS的基础上主要扩展了如下能力: 基本语法:ArkTS定义了声明式UI描述、自…

一招搞定vcruntime140_1.dll无法继续执行代码的解决方法

在我们日常频繁地与计算机互动、依赖其高效处理各类任务的过程中,偶尔会遭遇一些突发的技术问题,导致原本顺畅的操作流程被迫中断。其中一种常见的困扰便是系统弹出一则明确且令人颇感困惑的错误提示:“由于找不到vcruntime140_1.dll文件&…

C语言的显式类型转换和隐式类型转换详细讲解

目录 一、类型转换 1、显式类型转换 2、隐式类型转换 二、算术转换 三、总结 每个编译器都会对表达式做两件事情,一是判断表达式中操作符的优先级和结合性,二是判断表达式中的操作数类型是否一致,如果不一致则需要进行类型转换。第一点在…

机器学习(五) -- 监督学习(2) -- k近邻

系列文章目录及链接 目录 前言 一、K近邻通俗理解及定义 二、原理理解及公式 1、距离度量 四、接口实现 1、鸢尾花数据集介绍 2、API 3、流程 3.1、获取数据 3.2、数据预处理 3.3、特征工程 3.4、knn模型训练 3.5、模型评估 3.6、结果预测 4、超参数搜索-网格搜…

相机模型浅析

相机模型 文章目录 相机模型四个坐标系针孔相机模型世界坐标系到相机坐标系相机坐标系到图像坐标系图像坐标到像素坐标 四个坐标系 ①世界坐标系:是客观三维世界的绝对坐标系,也称客观坐标系。因为数码相机安放在三维空间中,我们需要世界坐标…

Python3 replace()函数使用详解:字符串的艺术转换

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …

JavaScript(1)神秘的编程技巧

大家都感兴趣的箭头函数 箭头函数在许多场景中都可以发挥作用,尤其适用于简化函数声明和提高代码的可读性。以下是箭头函数可以使用的一些常见方面: (1)回调函数: 箭头函数特别适合作为回调函数,例如在事…

RuntimeError: Library cublas64_12.dll is not found or cannot be loaded

运行guillaumekln/faster-whisper-large-v2模型进行语音识别的时候报错了 RuntimeError: Library cublas64_12.dll is not found or cannot be loaded 代码: from faster_whisper import WhisperModelmodel WhisperModel("H:\\model\\guillaumekln\\faster…

Linux系统安装内网穿透实现固定公网地址访问本地MinIO服务

文章目录 前言1. 创建Buckets和Access Keys2. Linux 安装Cpolar3. 创建连接MinIO服务公网地址4. 远程调用MinIO服务小结5. 固定连接TCP公网地址6. 固定地址连接测试 正文开始前给大家推荐个网站,前些天发现了一个巨牛的 人工智能学习网站, 通俗易懂&am…

MY-Java高级面试题

1. jdk1.7 到 jdk1.8 Map 发生了什么变化 ( 底层 )? 1.8 之后 hashMap 的数据结构发生了变化,从之前的单纯的数组 链表结构变成数组 链 表 红黑树。也就是说在 JVM 存储 hashMap 的 K-V 时仅仅通过 key 来决定每一个 entry 的存 储槽位&…

网络安全:重要性与应对措施

1. 网络安全的重要性 随着互联网的普及和信息技术的快速发展,网络安全问题已经变得日益突出。网络攻击者可以通过各种手段窃取个人信息、破坏系统、传播病毒等,给个人和社会带来巨大的损失。因此,网络安全已经成为信息化时代的重要问题之一。…

【MySQL】如何判断一个数据库是否出问题

在实际的应用中,其实大多数是主从结构。而采用主备,一般都需要一定的费用。 对于主备,如果主机故障,那么只需要直接将流量打到备机就可以,但是对于一主多从,还需要将从库连接到主库上。 对于切换的操作&a…

百度获评CCIA数据安全和个人信息保护社会责任评价“三星”示范单位

日前,由中国网络安全产业联盟(CCIA)数据安全工作委员会主办的“促进数据安全合规流通使用”专题研讨会(CCIA数安委年度会议)成功举办。与会介绍了数据安全和个人信息保护社会责任试点评价工作的开展情况,并…

LangChain-11 Code Writing FunctionCalling 大模型通过编写代码完成需求 大模型计算加法

背景简介 我们知道GPT模型对于内容的输出,是对下一个字符的预测,通过概率选出下一个文本。 而且我们也知道,训练样本是非常庞大的,对于GPT来说,也是有可能学习过1 1 2的。 当我们向GPT询问11 时,完全可以…

FME学习之旅---day21

我们付出一些成本,时间的或者其他,最终总能收获一些什么。 教程:AutoCAD 变换 相关的文章 为您的 DWG 赋予一些样式:使用 DWGStyler、模板文件、块等 FME数据检查器在显示行的方式上受到限制。它只能显示线条颜色,而…

电商行业网络安全不可小视,如何保障网商平台的稳定

随着互联网的全面普及,基于互联网的电子商务也应运而生,并在近年来获得了巨大的发展,成为一种全新的商务模式,被许多经济专家认为是新的经济增长点。 作为一种全新的商务模式,它有很大的发展前途,同时&…

基于Java+SpringBoot+vue3+uniapp口红销售/商城管理系统设计与实现

博主介绍:✌全网粉丝5W,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验…

java错误记录

文章目录 javaslf4j中log不存在 maven编译出现Non-resolvable import POM: Failure to find类找不到jdk版本不对 java slf4j中log不存在 解决方法:再idea中安装lombok插件。 离线下载地址 https://github.com/mplushnikov/lombok-intellij-plugin/releases&#x…

【二分查找】Leetcode 点名

题目解析 LCR 173. 点名 算法讲解 1. 哈希表 class Solution { public:int takeAttendance(vector<int>& nums) {map<int, int> Hash;for(auto n : nums) Hash[n];for(int i 0; i < nums[nums.size() - 1]; i){if(Hash[i] 0)return i;}return nums.si…

实验模拟gfs 五大逻辑卷

目录 一 实验环境 二 4台服务端准备工作 1&#xff0c;66,77,88,99 四台机器加4块磁盘 2&#xff0c; scan 刷新磁盘供电接口 并查看 3&#xff0c;改主机名&#xff0c;方便后续操作 4&#xff0c;为加快访问速度 写hosts文件 做映射&#xff08;55客户机也写&…