opencv学习笔记(1):基础知识

1.像素:

像素:数字图像的最小单位。数字图像由像素组成,像素由一系列代码表示的原色组合而成。

2.颜色空间:

颜色空间:也称彩色模型(又称彩色空间彩色系统)。

(说白了就是用来描述颜色的模型,告诉你如何描述颜色)

最简单的颜色空间要属灰度级空间,只处理黑色和白色,对它们进行组合可以产生不同程度的灰色。

对于彩色,则有更多种类的颜色空间。但不论哪种存储方法,都是把颜色分成3个或者4个基元素,通过组合基元素来产生所有的颜色。RGB颜色空间是最常用的颜色空间之一,它也是人眼内部构成颜色的方式。它的基色是红色、绿色和蓝色,有时为了表示透明颜色也会加入第四个元素alpha (透明度)。

常用的颜色空间:

  • RGB(Red:红,Green:绿,Blue:蓝)是最常见的颜色空间之一,这是因为人眼采用相似的工作机制,所以它也被显示设备所采用。
  • HSV(Hue:色调或色相,Saturation:饱和度,Value:明度)和HLS(Hue:色调或色相,Lightness:亮度,Saturation:饱和度)把颜色分解成色调、饱和度和明度/亮度。这是描述颜色更自然的方式,比如可以通过抛弃最后一个元素,使算法对输入图像的光照条件不敏感。
  • YcrCb(即YUV),“Y”表示明亮度(Luminance或Luma),也就是灰度值;而“U”和“V”表示色度(Chrominance或Chroma),描述影像色彩及饱和度,用于指定像素的颜色,YcrCb在JPEG图像格式中广泛使用。
  • CIE L*a*b*是目前最流行的测色系统之一。以明度L*和色度坐标a*、b*来表示颜色在颜色空间中的位置。L*表示颜色的明度,范围由0到100,表示颜色从深(黑)到浅(白),a*正值表示偏红,负值表示偏绿;b*正值表示偏黄,负值表示偏蓝。

3.像素值: 

像素值:是图像被数字化时由计算机赋予的值,代表了图像中某一像素点的平均亮度信息。

(当图像数字化后,一张图像就由很多像素点组成,计算机中图像的像素值一般都可以看作是该点亮度的大小)

人们从现实世界中获取数字图像的途径有数码相机、扫描仪、计算机断层扫描和核磁共振成像等。在任何情况下,人眼所看到的都是图像。然而,实际上数字设备记录的是图像中每个点的数值,如下图所示。

可以看到,在上述图像中,图像的成像只不过是一个包含所有像素点强度值的矩阵。获取和存储像素值的方法可能会根据不同的需要而有所不同,但最终,计算机世界里的所有图像都可以简化为数值矩阵信息。

例如:在一张单通道图像中,像素值为0时为黑色,像素值为255时为白色。

4.通道数:

图像分为单通道图像、双通道图像、三通道图像和四通道图像。每个图像都是由像素组成的,每个像素都是由颜色的组合组成的,更准确地说,就是原色。通道是彩色图像的灰度图像,它仅由构成彩色图像的一种原色组成。

(也可以理解为每个像素点由几个值表示,例如:单通道由一个值表示,三通道由三个值的平均值表示) 

 单通道图像:就是灰度图像。每个像素点用一个值表示颜色,每个像素只携带有关光强度的信息。灰度图是8位深度的图像。(位深度见下面颜色深度)

 二值图像:就是黑白图像。一个像素要么是黑色,要么是白色。

 双通道图像:平时几乎不用。例如RGB555、RGB565。

 三通道图像:彩色图像。每个像素由三个通道组成,每个通道代表一种颜色。常用的RGB图像就是三通道图像。RGB图像有24位颜色深度。它共有三个通道,每个通道都有8位深度。

 四通道图像:在三通道的基础上,加入了alpha通道,表示透明度。常见的PNG格式的图像就是四通道图像。

5.颜色深度:

颜色深度:就是储存1像素的颜色所用的位数。色彩深度越高,可用的颜色就越多。 

(我理解出来就是:一张图片中,每个像素点用几位二进制数来表示颜色)

常见的颜色深度一般有:8bit(256色)、24bit(真彩色)、32bit。

如果一个图片支持256种颜色(如GIF格式),那么就需要256=2^8 个不同的值来表示不同的颜色。也就是从0到255,用二进制表示就是从00000000到11111111,总共需要8位二进制数,所以颜色深度是8 Bit。

颜色深度(位深度) = 通道数 * 每个通道所占位数

例如: 单通道图像(灰度图): 1*8 = 8 bit ,所以存储一个像素值需要1B的内存。

关于“色深”和“位深”:https://zhuanlan.zhihu.com/p/144207333

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

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

相关文章

FCN深度学习语义分割开山之作——学习笔记

《Fully Convolutional Networks for Semantic Segmentation》提出了首个端到端的针对像素级预测的全卷积网络(FCN),可直接处理任意大小的输入图像并输出相应大小的预测结果,超过了现有技术水平。 一、提出背景 传统的语义分割方…

[计算机网络]第一周

TCP/IP 与OSI TCP/IP TCP/IP 四层模型是一个分层网络通信模型,它将网络通信过程分为四个层次,这四层分别是:网络接口层、互联网层、传输层和应用层。 网络接口层负责在计算机和网络硬件之间传输数据,负责在物理网络上发送和接收…

2024“源鲁杯“高校网络安全技能大赛-Misc-WP

Round 1 hide_png 题目给了一张图片,flag就在图片上,不过不太明显,写个python脚本处理一下 from PIL import Image ​ # 打开图像并转换为RGB模式 img Image.open("./attachments.png").convert("RGB") ​ # 获取图像…

241026-RHEL如何以root身份卸载Docker

在 RHEL 8.8 中,以 root 身份卸载 Docker 可以通过以下步骤完成: 停止 Docker 服务(如果已启动): sudo systemctl stop docker删除 Docker 包: 运行以下命令卸载 Docker 引擎及其依赖包(docker-…

Redis多级缓存

多级缓存 传统缓存的问题 传统的缓存策略一般是请求到达Tomcat后,先查询Redis,如果未命中则查询数据库,存在下面的问题: 请求要经过Tomcat处理,Tomcat的性能成为整个系统的瓶颈Redis缓存失效时,会对数据…

在多数据中心环境中,自动化运维如何保证跨区域的一致性?网络延迟导致的数据不一致是否可以完全避免?|自动化运维|跨区域一致性

目录 1. 跨区域一致性的定义与重要性 1.1 跨区域一致性的定义 1.2 跨区域一致性的意义 2. 网络延迟的挑战 2.1 网络延迟的来源 2.2 网络延迟对一致性的影响 3. 自动化运维如何实现跨区域一致性 3.1 使用分布式数据库 3.2 采用同步与异步复制 3.3 引入一致性协议 3.4…

Uni-App-03

登录功能开发 实现POST提交 HTTP协议规定请求消息内容类型(Content-Type)有哪些?—— 只有四种 text/plain 没有编码的普通数据 application/x-www-form-urlencoded 编码后的普通数据 multipart/form-data 请求主体中包含文件上传域 application/json 请求主体是 J…

【云原生网关】Higress 从部署到使用详解

目录 二、网关概述 2.1 什么是云原生网关 2.2 常见的云原生网关 2.2.1 Nginx 2.2.2 ApiSix 2.2.3 Kong 2.2.4 Apache Shenyu 2.2.5 Higress 2.2.6 Envoy​​​​​​​ 三、higress介绍 3.1 什么是higress 3.2 Higress 定位 3.3 Higress 内核选择 四、Higress搭…

Vscode + EIDE +CortexDebug 调试Stm32(记录)

{// 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid830387"version": "0.2.0","configurations": [{"cwd": "${workspaceRoot…

阿里面试竟被“DPO微调”吊打...

最近已有不少大厂都在秋招宣讲,也有一些已在 Offer 发放阶段了。 节前,我们邀请了一些互联网大厂朋友、今年参加社招和校招面试的同学。 针对新手如何入门算法岗、该如何准备面试攻略、面试常考点、大模型技术趋势、算法项目落地经验分享等热门话题进行…

一个可以调节笔记本亮度的程序

在我这台笔记本上,当我把显示模式调为读显时发现右下角的亮度不能调了,就像这样 听说时nvidia显卡不适配的问题 咱也不知道呀 于是我就用java写了程序来调节,用了俩个多月,没啥问题的 打开就是这样拉动直接就可以调节 源码 im…

unity中的组件(Component)

在 Unity 中,组件(Component)是构成 GameObject 功能和行为的基础单元,每个 GameObject都可以附加一个或多个组件,以实现不同的功能 1. Transform 组件 描述:所有 GameObject 默认都有一个 Transform 组件…

C++研发笔记8——C语言程序设计初阶学习笔记6

在第一部分——课前准备的学习中,我就提到了学习C语言的过程中,练习是必不可少的环节,所以本篇笔记我们来进行记录我们学习《C语言程序设计初阶》阶段的第一篇练习文章。 题目一 下面哪个不是C语言内置的数据类型: A.char B.d…

【大数据学习 | kafka】kafuka的基础架构

1. kafka是什么 Kafka是由LinkedIn开发的一个分布式的消息队列。它是一款开源的、轻量级的、分布式、可分区和具有复制备份的(Replicated)、基于ZooKeeper的协调管理的分布式流平台的功能强大的消息系统。与传统的消息系统相比,KafKa能够很好…

C++基础:三个字符串也能搞大小?

上一篇说了三个整数比较大小,按照顺序输入的,这次我们看看字符串的,顺便把那个简化以下: 题目:这次输入三个字符串。如果用户输入“Stenbeck", “Hemingway”,“Fitzgerald”,输出将是“Fitzgerald,Hemingway&…

OPPO携手比亚迪共同探索手机与汽车互融新时代

10月23日,OPPO与比亚迪宣布签订战略合作协议,双方将共同推进手机与汽车的互融合作,这一合作也标志着两大行业巨头在技术创新和产业融合上迈出了重要一步,为手机与汽车的深度融合探索新的可能。 OPPO创始人兼首席执行官陈明永、OP…

LCD手机屏幕高精度贴合

LCD手机屏幕贴合,作为智能手机生产线上至关重要的一环,其质量直接关乎用户体验与产品竞争力。这一工艺不仅要求屏幕组件间的无缝对接,达到极致的视觉与触觉效果,还需确保在整个生产过程中,从材料准备到最终成品&#x…

<Project-11 Calculator> 计算器 0.3 年龄计算器 age Calculator HTML JS

灵感 给工人发工资是按小时计算的,每次都要上网,我比较喜欢用 Hours Calculator ,也喜欢它的其它的功能, 做个类似的。 我以为是 Python,结果在学 javascript 看 HTML,页面的基础还停留在 Frontpage 2000…

MongoDB简单学习

MongoDB 一、基本使用 1.1业务应用场景 传统的关系型数据库(如Mysql),在数据库操作的“三高”需求以及对应web2.0的网站需求面前,显得力不从心 三高: High performance - 对数据库高并发读写的要求Huge Storage -…

1U服务器和Hyper-V虚拟机使用记录

记录最近接触服务器和虚拟机的一些使用操作知识 背景:1U服务器上架使用,备份其他服务器vm虚拟机,Hyper-V管理虚拟机使用测试 设备:IBM3550服务器交换机, 移动硬盘:附加存储盘, u盘1&#xff1…