机器学习-09-图像处理

总结

本系列是机器学习课程的系列课程,主要介绍机器学习中图像处理技术。

参考

02图像知识

色彩基础知识整理-色相、饱和度、明度、色调

图像特征提取(VGG和Resnet特征提取卷积过程详解)

Python图像处理入门

【人工智能】Python+OpenCV图像处理(一篇全)

本门课程的目标

完成一个特定行业的算法应用全过程:

懂业务+会选择合适的算法+数据处理+算法训练+算法调优+算法融合
+算法评估+持续调优+工程化接口实现

机器学习定义

关于机器学习的定义,Tom Michael Mitchell的这段话被广泛引用:
对于某类任务T性能度量P,如果一个计算机程序在T上其性能P随着经验E而自我完善,那么我们称这个计算机程序从经验E中学习
在这里插入图片描述

图像数据

图像处理技术应用场景

我们对图像并不陌生,图像处理技术已得到广泛应用,涵盖了社会生活的各个领域。例如,手机自拍美颜、人脸/指纹识别、光学字符识别(OCR)、车牌号检测与识别、广告图设计、影视剧特效制作、安防监控、无人驾驶、X光片、遥感卫星对地观测成像

我们能看到的图像

我们能看到什么色彩?
在这里插入图片描述
光是电磁光波的一个部分,它是一种连续性的类似于波状的能量(从伽马射线,可见光到电波)。所有的这些光波都是可被测量的,既可以测量伽马射线的一个顶点到另一顶点(两个顶点之间的距离仅为0.000 000 001mm),也可以测量一些电波,(其两个顶点之间的距离大约为6km长)。

人类的肉眼只对光谱中间的一小段光波具有反应(400纳米-700纳米之间)。当这一部范围中的光线触击到人类的眼睛时,我们的大脑就能够感知出光与色彩。大部分影像传感器与胶片对光线的感光与人类的眼睛几乎是相同的。但是,它们还能够对一些人眼看不到的光波也产生反应,例如:紫外线与红外线。

模拟图像与数字图像

根据记录方式的不同,图像可分为模拟图像数字图像。模拟图像通过某种具有连续变化值的物理量(如光、电等的强弱)来记录图像亮度信息,在计算机和数码相机发明之前的电视、照相机等设备获取或展示的都是模拟图像。普通图像包含的信息量巨大,需要将其转变成计算机能处理的数字图像。数字图像,又称数码图像或数位图像,是由模拟图像数字化得到的、以像素为基本元素的、可以用数字计算机或数字电路存储和处理的图像,其光照位置和强度都是离散的
在这里插入图片描述

传统意义上的图像是连续的(又称模拟图像),而计算机只能处理0101…这种离散的数据,因此为了便于利用计算机对图像进行处理,需要把连续图像(模拟图像)在空间上和幅值上进行离散化,转换成数字形式。

离散化过程包括两种处理:取样和量化。离散化的图像称为数字图像。
在这里插入图片描述

取样和量化

取样:数字化坐标值,即一幅图像用多少个像素点来表示,由图知,取样后像素点越少/分辨率越低,图像越模糊。取样时需满足二维取样定理(一维需满足香农取样定理)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

量化:数字化幅值度称为量化。即用一个多大的范围来表示取样后点的亮度和彩色深度,最大范围是0-255,也可以是0-100,0-任意数值。
在这里插入图片描述
在这里插入图片描述

数字图像

通常,图像处理指的是处理数字图像。
数字图像可以看作定义在二维空间区域上的函数$f(x,y)$(通常使用矩阵表示),其中,$x,y$表示空间坐标。

像素和分辨率

分辨率指屏幕上像素的数目,为了控制像素的亮度和彩色深度,每个像素需要很多个二进制位来表示,如果要显示256种颜色,则每个像素至少需要8位(一个字节)来表示,即2的8次方等于256;当显示真彩色时,每个像素要用3个字节的存储量.
真彩色是指图像中的每个像素值都分成红、绿、蓝三个基色分量,每个基色分量直接决定其基色的强度,这样产生的色彩称为真彩色。

在这里插入图片描述电子显示设备上将图像放大数倍,会发现图像的连续色调其实是由许多色彩相近的小方块所组成,这些小方块就是构成影像的最小单元——像素。
像素(Pixel)是数字图像的重要概念,又称为图像元素(Picture Element),是指图像的基本原色素及其灰度的基本编码,是构成数码影像的基本单元
通常以像素每英寸PPI(Pixels Per Inch)为单位来表示影像分辨率的大小。例如300*300PPI分辨率,即表示水平方向与垂直方向上每英寸长度上的像素数都是300,也可表示为一平方英寸内有9万(300*300)像素。越高位的像素,其拥有的色板也就越丰富,也就越能表达颜色的真实感。
在这里插入图片描述

灰度
表示图像像素明暗程度的数值,范围一般为0-255,0是黑色,255是白色

通道

单通道:一个像素点只需一个数值表示,只能表示灰度0-255
三通道:RGB模式,把图像分成红绿蓝三个通道,可以表示彩色
四通道:RGBA模式,A为透明度,alpha=0表示全透明
在这里插入图片描述
在这里插入图片描述

RGB与CMYK

RGB是显示器显示标准,CMYK是打印机标准。
RGB分别代表着3种颜色:R代表红色,G代表绿色、B代表蓝色。RGB色彩模式使用RGB模型为图像中每一个像素的RGB分量分配一个0~255范围内的强度值。
CMYK色彩模式以打印油墨在纸张上的光线吸收特性为基础,图像中每个像素都是由靛青(C)、品红(M)、黄(Y)和黑(K)色按照不同的比例合成。
在这里插入图片描述

加色法和减色法原理

色光三原色——加色法原理
在这里插入图片描述
人的眼睛是根据所看见的光的波长来识别颜色的。可见光谱中的大部分颜色可以由三种基本色光按不同的比例混合而成,这三种基本色光的颜色就是红(Red)、绿(Green)、蓝(Blue)三原色光。这三种光以相同的比例混合、且达到一定的强度, 就呈现白色(白光);若三种光的强度均为零, 就是黑色(黑暗)。这就是加色法原理,加色法原理被应用于早期的彩色摄影之中,现在被广泛应用于电视机、监视器等主动发光的产品中。
颜料三原色——减色法原理
在这里插入图片描述
在这里插入图片描述
而在打印、印刷、油漆、绘画等靠介质表面的反射被动发光的场合,物体所呈现的颜色是光源中被颜料吸收后所剩余的部分,所以其成色的原理叫做减色法原理。 减色法原理被广泛应用于各种被动发光的场合。在减色法原理中的三原色颜料分别是青(Cyan)、品红(Magenta)和黄(Yellow)。

对比度

对比度=最大灰度值/最小灰度值,是画面黑与白的比值,也就是从黑到白的渐变层次。比值越大,从黑到白的渐变层次就越多,从而色彩表现越丰富。好的对比率120:1就可容易地显示生动、丰富的色彩,当对比率高达300:1时,便可支持各阶的颜色。

色相

色相就是颜色,调整色相就是调整景物的颜色,例如:彩虹由红、橙、黄、绿、青、蓝、紫七种颜色组成,那么它就有七种色相。顾名思义既各种色彩的相貌称谓,如大红、普蓝等。色相是色彩的首要特征,是区别各种不同色彩的最准确的标准。事实上任何黑白意外的颜色都有色相的属性,而色相也就是由原色、间色和复色来构成的。
在这里插入图片描述

饱和度

饱和度是指图像中颜色的浓度。饱和度越高,颜色越饱满,即所谓的青翠欲滴的感觉。饱和度越低,颜色就会显得越陈旧、惨淡,饱和度为0时,图像就为灰度图像。
在这里插入图片描述

明度
明度就像是色彩的开关灯按钮。见下图,在黄色中添加白色,提高明度,添加的足够多,就会变成白色;添加灰色,明度就会降低,变为暗黄;添加黑色,明度进一步降低,变为深黄,添加的足够多,就会变为黑色。
所以明度就像是开关灯,明度最高,会失去本身色彩,变为白色,明度最低,则变为黑色。
在这里插入图片描述

色调

色调是各种图像色彩模式下原色的明暗程度,范围级别是从0到255,共256级色调。例如对灰色图像,当色调级别为255时,就是白色,当级别为0时,就是黑色,中间是各种不同程度的灰色。在RGB模式中,色调代表红、绿、蓝三种原色的明暗程度,对绿色就有淡绿、浅绿、深绿等不同的色调。色调是指色彩外观的基本倾向。在明度、纯度、色相这三个要素中,某种因素起主导作用时,就可以称之为某种色调。
在这里插入图片描述

上采样与下采样

缩小图像(或称为下采样(subsampled)或降采样(downsampled))的主要目的有两个:1、使得图像符合显示区域的大小;2、生成对应图像的缩略图。
原理:对于一幅图像I尺寸为MN,对其进行s倍下采样,即得到(M/s)(N/s)尺寸的得分辨率图像,当然s应该是M和N的公约数才行
放大图像(或称为上采样(upsampling)或图像插值(interpolating))的主要目的是放大原图像,从而可以显示在更高分辨率的显示设备上。
原理:图像放大几乎都是采用内插值方法,即在原有图像像素的基础上在像素点之间采用合适的插值算法插入新的元素。

常用的插值方法

最近邻插值法:最近邻插值法nearest_neighbor是最简单的灰度值插值。也称作零阶插值,就是令变换后像素的灰度值等于距它最近的输入像素的灰度值。
优点:容易理解,计算简单
缺点:一般保留左上角的像素值,容易造成图像失真,边缘不连续
在这里插入图片描述
在这里插入图片描述

单线性插值法
在这里插入图片描述

双线性插值法👇
优点:解决灰度不连续问题,图像光滑
缺点:与最近邻相比计算量大,运算时间长
注意:为了防止一些像素没有参与运算,需要先对原图和放大图像做中心对称,然后进行双线性插值。
在这里插入图片描述

确定方向过程

针对完全没有基础的同学们
1.确定机器学习的应用领域有哪些
2.查找机器学习的算法应用有哪些
3.确定想要研究的领域极其对应的算法
4.通过招聘网站和论文等确定具体的技术
5.了解业务流程,查找数据
6.复现经典算法
7.持续优化,并尝试与对应企业人员沟通心得
8.企业给出反馈

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

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

相关文章

Redis高级-分布式缓存RDB原理

分布式缓存 1.1.2.RDB原理 bgsave开始时会fork主进程得到子进程,子进程共享主进程的内存数据。完成fork后读取内存数据并写入 RDB 文件。 fork采用的是copy-on-write技术: 当主进程执行读操作时,访问共享内存;当主进程执行写操…

idea中输入法被锁定如何清除

今天遇到一个问题?idea中输入法被锁定了,无论怎么切换输入法,切换中英文,在idea中输出的均为英文内容,该如何解决呢?(idea官网:JetBrains: 软件开发者和团队的必备工具) …

SQLite Android 绑定(十八)

返回:SQLite—系列文章目录 上一篇:SQLite 在Android安装与定制方案(十七) 下一篇:SQLite—系列文章目录 ​ 应用程序编程 加载共享库 在使用任何与 SQLite 相关的方法或对象之前,本机 SQLite 必…

ABAP ADBC_QUERY 测试代码

项目中使用的接口取数采用的是DBLink的方式,对方提供的表名太长,超过标准程序ADBC_QUERY的参数长度,于是写了一份简单的测试代码用来测试连接和取数。 DBCO配置: 测试程序: 程序源码: *&------------…

实验五 智能手机互联网程序设计(微信程序方向)实验报告

请完成数值比较任务; 二、实验步骤与结果(给出对应的代码或运行结果截图) index.js Page({ /** * 页面的初始数据 */ data: { num1:0, num2:0, num3:"" }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { },…

14款DevOps/SRE工具,助力提升运维效率

简介 随着平台工程的兴起,DevOps 和 SRE 不断发展,带来了新一代工具,旨在提高软件开发和运维的效率、可扩展性和可靠性。 在本篇文章中,我们将深入探讨一些最具发展前景的工具,它们正在塑造持续集成与部署、监控与可观…

【c语言】自定义类型:结构体详解

目录 自定义类型:结构体 结构体类型的声明 结构体变量的创建和初始化 结构的特殊声明 结构的自引用 结构体内存对齐 对其规则 为什么存在内存对齐? 修改默认对⻬数 结构体传参 结构体实现位段 位段的内存分配 位段的跨平台问题 位段的应用…

SpringBoot实现RabbitMQ的通配符交换机(SpringAMQP 实现Topic交换机)

文章目录 pomyml生产者消费者 Topic类型的Exchange与Direct相比,都是可以根据RoutingKey把消息路由到不同的队列。只不过Topic类型Exchange可以让队列在绑定Routing key 的时候使用通配符! Routingkey 一般都是有一个或多个单词组成,多个单词…

2024年思维100春季线上比赛倒计时9天,来看看官方样题

今天是2024年4月11日,距离2024年春季思维100活动第一阶段的线上比赛4月20日还有9天。今年思维100活动的考试重点是什么呢?虽然主办方未公布,我们可以从主办方发布的参考题目中来推测今年的考试重点,并且按照这个来举一反三&#x…

基于GAN的多变量时间序列污染训练集异常检测

论文地址:https://ieeexplore.ieee.org/document/9618824 论文源码:https://github.com/sxxmason/FGANomaly 期刊:IEEE Transactions on Knowledge and Data Engineering 多元时间序列异常检测在结构健康监测、智能运维、量化交易等诸多实际…

谷粒商城实战(012 业务-商城业务)

Java项目《谷粒商城》架构师级Java项目实战,对标阿里P6-P7,全网最强 总时长 104:45:00 共408P 此文章包含第203p-第p210的内容 介绍 这段除了210集都是商城业务,无太多可学习的,可跳过这7集,直接看第2100集 一个页…

CentOS 7.9安装过程的一些小插曲

首先请允许我推荐一下这款制作U盘启动盘的软件 Rufus - 轻松创建 USB 启动盘Rufus: Create bootable USB drives the easy wayhttps://rufus.ie/zh/ Rufus 是一款格式化和创建 USB 启动盘的辅助工具。 本软件适用于以下场景: 需要将可引导 ISO (Windows、Linux、UE…

Django之rest_framework(二)

格式后缀 为了使我们的响应不再硬连接到单个内容类型这一事实,我们可以将API格式后缀添加到API之后。使用格式后缀为我们提供了明确引用给定格式的URL,譬如:http://example.com/api/items/4.json 官网:2 - Requests and responses - Django REST framework views:在函数…

大厂Java笔试题之求一个整数转换为二进制后所有位上1的个数

题目:给定一个整数,求这个整数转换成二进制以后,所有位上1的个数(数字大小不超过32位数字的范围)。比如8这个整数,转换成二进制是00001000,那么就是输出1。public class Demo5 {public static v…

css实现扫码循环扫描特效

摘要&#xff1a; 需求中需要模拟扫描的效果来实现户型的生成&#xff01;由于接口ai生成的图片户型时间比较长&#xff0c;所以需要模拟特效&#xff01; <!DOCTYPE html> <html><head><mate charset"UTF-8" /><title>扫描</title…

FME学习之旅---day22

我们付出一些成本&#xff0c;时间的或者其他&#xff0c;最终总能收获一些什么。 教程&#xff1a;栅格入门 FME 支持读取和写入 70 多种栅格格式。本教程将介绍几个基本示例&#xff0c;展示如何使用 FME 读取、转换和写入栅格数据。 FME 数据检查器不应用任何对比度增强。因…

删除链表的倒数第 N 个结点 - LeetCode 热题 29

大家好&#xff01;我是曾续缘&#x1f916; 今天是《LeetCode 热题 100》系列 发车第 29 天 链表第 8 题 ❤️点赞 &#x1f44d; 收藏 ⭐再看&#xff0c;养成习惯 删除链表的倒数第 N 个结点 给你一个链表&#xff0c;删除链表的倒数第 n 个结点&#xff0c;并且返回链表的头…

SpringBoot菜品分页查询模块开发(多表连接查询)

需要注意的地方 为什么创建VO类怎么进行多表连接查询分页查询的统一返回结果类PageResult分页查询Mapper的返回结果是Page<目标实体类> 需求分析与设计 一&#xff1a;产品原型 系统中的菜品数据很多的时候&#xff0c;如果在一个页面中全部展示出来会显得比较乱&…

【无人机/平衡车/机器人】详解STM32+MPU6050姿态解算—卡尔曼滤波+四元数法+互补滤波——附3个算法源码

效果&#xff1a; MPU6050姿态解算-卡尔曼滤波四元数互补滤波 目录 基础知识详解 欧拉角 加速度计(Accelerometer)与姿态测量 陀螺仪(Gyroscope)与姿态测量 姿态解算算法1-互补滤波 姿态解算算法2-四元数法 姿态解算算法3-卡尔曼滤波 组成 1.预测状态方程 2. 预测协方…

Java | Leetcode Java题解之第20题有效的括号

题目&#xff1a; 题解&#xff1a; class Solution {public boolean isValid(String s) {int n s.length();if (n % 2 1) {return false;}Map<Character, Character> pairs new HashMap<Character, Character>() {{put(), ();put(], [);put(}, {);}};Deque<…