数字图像的存储与颜色空间简单了解

2023-12-27 08:48

本文主要是介绍数字图像的存储与颜色空间简单了解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

简单说一下数字图像的存储方式与一些常用颜色空间。

首先是数字图像的存储,图像的存储分为两类:

位图存储和矢量存储。

位图存储也叫做点阵存储,原理十分简单,就是按照原式图像的位置“一对一”式创建点阵矩阵。每一个位置存储着对应位置的像素点(多维),这个像素点可以是灰度、亮度或者颜色组成之类的。对于位图存储来说,存储方式简单,甚至是粗暴,但其优点是简单明了,且最为贴近真实图像。缺点也十分明显,简单来说就是不支持图像的放大,一旦分辨率过小。图像显示过大时就会产生锯齿和模糊的情况,如果想要防止情况发生就需要提高图像存储的分辨率,增大存储空间。当然可以使用一些差值算法来放大或者缩小图像,但是细节处总会有些细微的不协调。

矢量存储。什么是矢量?简单来说矢量就是有方向的坐标(个人理解),我们将图像提取出一些关键点,然后记录相应的指令,根据已有的点画出直线、曲线之类的来“画出”对应的图形。矢量存储的优点就是无视大小,可以任意缩放做到不失真。总体来说,矢量存储比位图存储更加先进。他们之间就会说时间与空间的取舍,矢量存储在显示时会有一步“绘图”操作,可以说在时间上比位图存储慢一些,但在存储上有着优势。

颜色空间

RGB

R(red)G(green)B(blue)就是红绿蓝三种颜色的混合形成不同的颜色。且每个颜色占8位,在0-255之间,他们每个颜色都可以有自己的一个亮度(可以理解为颜色的强弱或者多少),最后呈现的颜色亮度是三者的亮度叠加和。且人对三种颜色的敏感度是不同的,也就是说颜色不是“均匀的”,有的颜色看着差不多,但他的颜色分量可能差很多或者差很少。

YUV  YCbCr

这篇关于数字图像的存储与颜色空间简单了解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/542588

相关文章

MyBatis-plus处理存储json数据过程

《MyBatis-plus处理存储json数据过程》文章介绍MyBatis-Plus3.4.21处理对象与集合的差异:对象可用内置Handler配合autoResultMap,集合需自定义处理器继承F... 目录1、如果是对象2、如果需要转换的是List集合总结对象和集合分两种情况处理,目前我用的MP的版本

Three.js构建一个 3D 商品展示空间完整实战项目

《Three.js构建一个3D商品展示空间完整实战项目》Three.js是一个强大的JavaScript库,专用于在Web浏览器中创建3D图形,:本文主要介绍Three.js构建一个3D商品展... 目录引言项目核心技术1. 项目架构与资源组织2. 多模型切换、交互热点绑定3. 移动端适配与帧率优化4. 可

Python 基于http.server模块实现简单http服务的代码举例

《Python基于http.server模块实现简单http服务的代码举例》Pythonhttp.server模块通过继承BaseHTTPRequestHandler处理HTTP请求,使用Threa... 目录测试环境代码实现相关介绍模块简介类及相关函数简介参考链接测试环境win11专业版python

使用SpringBoot+InfluxDB实现高效数据存储与查询

《使用SpringBoot+InfluxDB实现高效数据存储与查询》InfluxDB是一个开源的时间序列数据库,特别适合处理带有时间戳的监控数据、指标数据等,下面详细介绍如何在SpringBoot项目... 目录1、项目介绍2、 InfluxDB 介绍3、Spring Boot 配置 InfluxDB4、I

python连接sqlite3简单用法完整例子

《python连接sqlite3简单用法完整例子》SQLite3是一个内置的Python模块,可以通过Python的标准库轻松地使用,无需进行额外安装和配置,:本文主要介绍python连接sqli... 目录1. 连接到数据库2. 创建游标对象3. 创建表4. 插入数据5. 查询数据6. 更新数据7. 删除

Jenkins的安装与简单配置过程

《Jenkins的安装与简单配置过程》本文简述Jenkins在CentOS7.3上安装流程,包括Java环境配置、RPM包安装、修改JENKINS_HOME路径及权限、启动服务、插件安装与系统管理设置... 目录www.chinasem.cnJenkins安装访问并配置JenkinsJenkins配置邮件通知

Python yield与yield from的简单使用方式

《Pythonyield与yieldfrom的简单使用方式》生成器通过yield定义,可在处理I/O时暂停执行并返回部分结果,待其他任务完成后继续,yieldfrom用于将一个生成器的值传递给另一... 目录python yield与yield from的使用代码结构总结Python yield与yield

Java中使用 @Builder 注解的简单示例

《Java中使用@Builder注解的简单示例》@Builder简化构建但存在复杂性,需配合其他注解,导致可变性、抽象类型处理难题,链式编程非最佳实践,适合长期对象,避免与@Data混用,改用@G... 目录一、案例二、不足之处大多数同学使用 @Builder 无非就是为了链式编程,然而 @Builder

SpringBoot3.X 整合 MinIO 存储原生方案

《SpringBoot3.X整合MinIO存储原生方案》本文详细介绍了SpringBoot3.X整合MinIO的原生方案,从环境搭建到核心功能实现,涵盖了文件上传、下载、删除等常用操作,并补充了... 目录SpringBoot3.X整合MinIO存储原生方案:从环境搭建到实战开发一、前言:为什么选择MinI

Ubuntu如何分配​​未使用的空间

《Ubuntu如何分配​​未使用的空间》Ubuntu磁盘空间不足,实际未分配空间8.2G因LVM卷组名称格式差异(双破折号误写)导致无法扩展,确认正确卷组名后,使用lvextend和resize2fs... 目录1:原因2:操作3:报错5:解决问题:确认卷组名称​6:再次操作7:验证扩展是否成功8:问题已解