32 基变换和图像压缩

news2024/11/20 19:39:03

一、知识概要

本节主题是线性变换与矩阵的关联,从图像压缩与信号处理的应用引入,介绍几种方便的基向量:傅里叶,小波。最后从代数角度大体上介绍了基变换与变换矩阵的关系。

二、图像处理

首先我们假设有一个 512 * 512 的黑白图像,那么它的大体性质如下:
在这里插入图片描述
由此看来,每个图像都可以使用一个向量 x 来表示,其中的各个分量代表图像中的每一个像素点。此时,x∈ 𝑅𝑛,n = 512 * 512。这既是我们得到的信息,将图像抽象为一个长度为 n 的向量。如果是彩色图像长度就是三倍,就是 3 * 512 * 512。因为我们需要三个值来代表颜色。 我们使用 JPEG 方式压缩图像。就是利用基变换来压缩储存空间。怎么做呢?具体来说,一个图像中总有颜色相近的点,或者类似的点,而我们在压缩之前是使用标准基储存图像,其实我们没必要这么做,比如蓝衬衫,黑板这类颜色在很大一部分上是相近的。那么我们只要使用在这里插入图片描述来储存这部分信息即可。不需要再用标准基来细致入微的储存相近的信息。由此我们看出,怎样选择储存信息的基,是很重要的一个问题。

三.两个重要的基

2.1 傅里叶基

JPEG 处理图像压缩的方法就是先将图像分块,在使用傅里叶基进行处理,最后进行压缩。
在这里插入图片描述
如上图,首先将图片划分为若干个 88 区域,每个区域中有 64 个元素,再使用傅里叶基进行变换。
8
8 的图像傅里叶基如下:
在这里插入图片描述
整个处理流程如下:
在这里插入图片描述
如上,整个处理过程中,第一步傅里叶基的变换过程是无损处理,而第二部的压缩过程是有损处理,最后导致 C’中很多项都是 0,需要储存的仅剩下很少的几项,这个过程中我们完成了压缩。
2.2 小波
小波也是一组很好的基,在 8*8 的情况下,其基为:
在这里插入图片描述
在这里插入图片描述
2.3 总结

在这里插入图片描述

四、基变换

4.1 坐标角度的基变换
在这里插入图片描述
4.2 线性变换矩阵角度的基变换
在这里插入图片描述
4.3 总结
在这里插入图片描述
在这里插入图片描述

五、学习感悟

本节内容主要通过线性变换与基变换介绍了其应用:图像压缩,这部分的介绍都比较概括,教授的主要目的是让我们了解这些东西都可以用来做什么以及它们都具有怎样的性质。主要注意的就是线性变换与矩阵之间的关系,以及不同基下的变换会有什么特点。

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

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

相关文章

StarRocks斩获「2022 掘金引力榜」年度技术品牌传播案例 Top 10!

近日,由稀土掘金技术社区打造的「掘金引力榜」正式公布,由StarRocks社区举办的StarRocks Summit Asia 2022荣获「掘金引力榜 2022 年度技术品牌传播案例 Top10」!掘金是面向全球中文开发者的技术社区。「掘金引力榜」是由稀土掘金技术社区打造…

【MyBatis持久层框架】配置文件实现增删改查实战案例(下)

前言 前面我们学习了 MyBatis 持久层框架的原生开发方式和 Mapper 代理开发两种方式,解决了使用 JDBC 基础性代码操作数据库时存在的硬编码和操作繁琐的问题。 在配置文件实现增删改查上篇中,我们详细讲解了常用的查询操作,例如查询所有数据…

Spring Boot 项目 - API 文档搜索引擎

在线体验 : http://43.139.1.94:9090/index.html项目 Gitee 链接 : API 文档搜索引擎1.认识搜索引擎我们平时查百度, 搜狗的时候, 结果页会显示若干条相关结果 , 每个结果几乎都包含图片, 标题, 描述, 展示 URL以及时间等等.1.1 搜索引擎的本质输入一个查询词, 得到若干个结果,…

stm32学习笔记-1 STM32简介

1 STM32简介 [toc] 注:笔记主要参考 江科大自化协 教学视频“STM32入门教程-2023持续更新中”。 注:工程及代码文件放在了本人的Github仓库。 1.1 套件简介 本教程使用STM32最小系统板(STM32F103C8T6)面包板硬件平台进行学习。…

微信小程序 Springboot校园自动点餐系统带跑腿 java

开发语言:Java 小程序前端框架:uniapp 小程序运行软件:微信开发者 可选运行软件:webapp (hbuiderx) 前端开发语言:vue.js 后端技术:Springboot(SpringSpringMVCMyBatis) 可选技术:springboot 后端开发环境:idea和eclipse都支持 数据库:mysql …

六、服务端开发

服务器端开发&#xff1a;服务器设计框架&#xff1a;缓解和转发的作用连接音箱和app最大一个作用转发一个app操作音箱app绑定音箱服务器类实现&#xff1a;jsoncpplibventverser.h#ifndef SERVER_H #define SERVER_H#include <event.h>#define IP "172.17.7.99&…

【C++入门】缺省参数

目  录1 缺省参数1.1 缺省参数概念1.2 缺省参数分类1.3 缺省参数使用注意1 缺省参数 1.1 缺省参数概念 缺省参数是声明或定义函数时为函数的参数指定一个缺省值。 在调用该函数时&#xff0c;如果没有指定实参&#xff0c;则采用该形参的缺省值&#xff0c;否则使用指定的实…

Spring Profiles 实现多环境配置 ,切换环境

Spring Profiles 实现多环境配置 Spring Profiles 就是针对应用程序&#xff0c;不同环境需要不同配置加载的一种解决方案。 使用场景: 我们平常项目开发&#xff0c;经常需要根据不同的环境进行配置的修改&#xff0c;比如在本地开发会加载本机的配置和开发环境数据库&#x…

【NKOJ-昨天今天和明天】考试游记

目录 昨天上午的序列 - 30pts今天上午的扫除 - 100pts明天上午的教室 - 100pts明天上午的数组 - 100pts明天上午的函数 - 100pts 题目排序太合理了,EDCBA依次变难,导致我对着A题苦思冥想了半小时...但是A题是[LeetCode 907. 子数组的最小值之和]的换皮题(除了题目一点没变)然…

初始OAuth2.0

1. 什么是OAuth2.0 OAuth2.0是目前使用非常广泛的授权机制&#xff0c;用于授权第三方应用获取用户的数据。 举例说明&#xff1a;用户可以通过选择其他登录方式来使用gitee&#xff0c;这里就使用到了第三方认证。 OAuth 引入了一个授权层&#xff0c;用来分离两种不同的角色…

前端工程化

一、前端工程化1、webpack&#xff08;1&#xff09;定义&#xff1a;是一个前端的构建工具。前端代码格式多&#xff08;html、css、js、图片&#xff09;&#xff0c;前端构建工具的作用是将各种格式不同文件打包到一起&#xff0c;方便项目的上线运行。&#xff08;将开发环…

Java学习笔记---干货

Java学习 一、java版本 JavaSE &#xff1a;标准版&#xff08;桌面应用程序、控制台程序&#xff09; JavaEE&#xff1a;E企业级开发&#xff08;Web端&#xff0c;服务器的开发&#xff09; JDK&#xff1a;Java开发工具 JRE&#xff1a;Java运行环境 JVM&#xff1a;…

通信原理笔记—基带信号的功率谱

目录 二进制纯随机序列基带信号的功率谱&#xff1a; 基带信号的功率谱分析&#xff1a; (1)信号(t)的功率谱&#xff1a; (2)信号v(t)的功率谱&#xff1a; 随机序列S(t)的功率谱&#xff1a; 二进制纯随机序列基带信号的功率谱&#xff1a; 基带信号的功率谱分析&#…

软件需求说明书确保正确性的6大关键点

软件需求说明书对软件开发项目非常关键&#xff0c;如何确保其正确性&#xff0c;关键有6大要点&#xff01; 1、需求与其他需求是否相互冲突或重复 一般需求规格说明书长达几百页&#xff0c;并不是一蹴而就的&#xff0c;因此可能出现前后观点的重叠或差异&#xff0c;或同一…

[HDCTF2019]Maze 题解

少欲则心静&#xff0c;心静则事简。 ——人民日报 1.查壳 是一个加了upx壳的32位EXE文件 2.使用Kali Linux脱壳 maze题目脱壳3.去除脏字节 没有找到主函数&#xff0c;发现这段汇编代码标红了&#xff0c;IDA分析崩溃&#xff0c;这是掺杂了花指令 这里jnz&#xff0c;不论判…

中国电子学会2022年03月份青少年软件编程Scratch图形化等级考试试卷三级真题(含答案)

青少年软件编程&#xff08;图形化&#xff09;等级考试试卷&#xff08;三级&#xff09; 分数&#xff1a;100 题数&#xff1a;38 一、单选题(共25题&#xff0c;共50分) 1. 以下四个选项中&#xff0c;运行哪个积木块&#xff0c;可能得到523这个数值&#xff1f;&…

25-35分布式事务seata

分布式事务Seata使用及其原理剖析 Seata的三大角色 TC (Transaction Coordinator) - 事务协调者 维护全局和分支事务的状态&#xff0c;驱动全局事务提交或回滚。 TM (Transaction Manager) - 事务管理器 定义全局事务的范围&#xff1a;开始全局事务、提交或回滚全局事务。 RM…

devicetree和启动参数解析流程

devicetree和启动参数解析流程 文章目录devicetree和启动参数解析流程一、设备树解析概述二、early device tree 解析流程三、device node节点创建流程四、bootargs参数解析&#xff14;.1 bootargs参数配置&#xff14;.&#xff12; early param参数解析&#xff14;.&…

Docker - 2. Docker 工作原理

目录 1. Docker入门图解 2. Docker 整体架构和底层通讯原理 1. Docker入门图解 (1) Docker是一个Client-Server结构的系统&#xff0c;Docker守护进程(图中Docjer daemon)运行在主机上&#xff0c;然后通过Socket链接客户端往返&#xff0c;守护进程从客户端接收命令并管理在…

PySpark 之 SparkSQL 编程

1. DataFrame 的创建 1.1 RDD 和 DataFrame 的区别 RDD 是一种弹性分布式数据集&#xff0c;Spark中的基本抽象。表示一种不可变的、分区储存的集合&#xff0c;可以进行并行操作DataFrame是一种以列对数据进行分组表达的分布式集合&#xff0c; DataFrame等同于Spark SQL中的…