【FPGA图像处理实战】- 图像基础知识

视频图像处理是FPGA主要应用方向之一,很多FPGA从事或准备进入这一领域,我们现在开始发布新的FPGA实战专栏——FPGA图像处理。

FPGA处理视频图像处理的主要优势是流水线和并行处理运算,特别是现在视频分辨率越来越大,从720p到1080p,再到4k,还有更大的8k,数据量越来越大,FPGA非常适合这样的实时性要求非常高的领域。

通过这篇文章,大家可以解决一下几个问题:

1、图像是什么?如何理解?

2、图像有哪些重要参数或特性?

3、图像处理有哪些常见内容。

一、专栏​介绍

本专栏将全方位介绍“FPGA图像处理实战”,图像处理相关的各种算法,包括图像二值化、图像缩放、图像腐蚀、图像膨胀、图像识别等等,提供完整的设计理论分析参考和可以应用到实际项目的代码工程。

这里给提供一个思维导图给大家参考下:

FPGA图像处理是FPGA学习入门非常好的一个方向,可以没有FPGA开发板,只需要仿真​即可学习;当然,如果能够上板调试,就更好,更接近实战项目。

二、图像处理基础知识

1、图像是什么?

一个图像可以看成一个二维矩阵,如果进一步考虑图像的色彩,可以看作一个三维矩阵——多个维度用来储存色彩信息。

这个三维矩阵通常是用三原色(红、绿、蓝)来表示,一般简写为(R,G,B),也就是每个原色对应一个不同的平面,如下图所示。

图像的每一个点称为像素,每一个像素的色彩可以用三原色RGB的强度值来表示,如果每一个像素的数据位宽为8bit,则三原色每一个维度的取值范围为0~255,例如(R,G,B)=(255,0,0)来表示红色。

2、图像颜色平面

将一个图像按照三原色分成不同的平面,如下图所示,第一张图是原图,其它的图像依次是红色、绿色、蓝色三个平面。

颜色强度高的地方显示为亮色,强度低为暗色。

从图中可以看到红色平面图片最亮,红色对图片强度影响更多。

图像的颜色信息,需要占用一定数据存储空间,称为颜色深度。如果每一个颜色平面用8bit表示(颜色位深),那图像总平面的颜色深度为8*3=24 bit,也就是总共有2^24种不同颜色。如果颜色位深用10bit表示,则有2^30种不同颜色。

3、分辨率

图像分辨率,也就是一个平面内像素的数量。通常表示成宽*高,例如下面这张4x4的图片。

图像还有一个属性是宽高比,用于描述图像或像素的宽度和高度之间的比例关系。

当人们说这个电影或照片是 16:9 时,通常是指显示宽高比(DAR),然而我们也可以有不同形状的单个像素,我们称为像素宽高比(PAR)。

例如​虽然 DVD 的实际分辨率(DAR)是 704x480,但它依然保持 4:3 的宽高比,因为它有一个 10:11(704x10/480x11)的 PAR。

4、颜色空间

(1)RGB 颜色空间

RGB颜色空间由三个分量组成:红色(R)、绿色(G)和蓝色(B)。

在 RGB 颜色空间中,每个颜色分量取值范围为 0-255,三个分量组合起来可以表示多种颜色。

RGB 颜色空间适用于计算机图形学和显示器系统。

(2)HSV 颜色空间

这是一种基于感知的颜色模型。它由三个分量组成:色相(H)、饱和度(S)和明度(V)。

HSV 颜色空间中的色相表示颜色的种类,饱和度表示颜色的纯度,明度表示颜色的明暗程度。

HSV 颜色空间适用于图像处理和计算机视觉任务,因为它能够较好地表示人眼对颜色的感知。

(3)CMYK 颜色空间

由四个分量组成:青(C)、品红(M)、黄(Y)和黑(K)。

CMYK 颜色空间中的每个分量表示一种颜色,它们相互叠加生成其他颜色。

CMYK 颜色空间适用于彩色印刷。

(4)YUV/YCbCr颜色空间

YUV和YCbCr颜色空间主要用于视频系统和图像处理领域。

它们是由RGB颜色空间转换而来的,分别包含三个分量:亮度(Y)、色差(U)和色度(V)。

YUV/YCbCr颜色空间适用于彩色视频处理,如颜色调整、滤波和压缩等。

5、亮度、色调、饱和度、对比度

(1)亮度(brightness)

亮度是指颜色的明暗程度,它描述了光源照亮物体的程度。

亮度值越高,颜色越明亮;亮度值越低,颜色越暗淡。

(2)色调(hue)

色调是颜色的基本属性,它决定了颜色的种类。

色调是由光谱中的波长组成的,人眼能感知到的色调范围约为 360 种。

(3)饱和度(saturation)

饱和度是指颜色的纯度,它描述了颜色中所含灰色的程度。

饱和度越高,颜色越纯,显得越鲜艳;饱和度越低,颜色越接近灰色,显得越淡。

(4)对比度(Contrast)

对比度是描述图像或显示设备中明暗差异程度的物理量,它是图像处理和显示技术中一个重要的性能指标。

对比度体现了图像中最亮和最暗区域之间的差异,对于图像的清晰度和视觉效果具有重要影响。

6、常见图像文件格式

(1)BMP

这是一种无损压缩格式,主要用于 Windows 操作系统。

BMP 格式包含丰富的图像信息,但文件体积较大。

它适用于简单的图形和线条图,但对于复杂图像和照片不太适用。

(2)JPEG

这是一种有损压缩格式,广泛应用于数字相机和计算机图像处理。

JPEG 格式可以将图像压缩在较小的存储空间,但会损失一定的图像质量。

(3)PNG

​这是一种无损压缩格式,支持透明通道,适用于网络和计算机图形设计。

PNG 格式具有较高的压缩比,同时保持图像质量不变。

它支持 alpha 通道(透明度)、色度信息和图像滤镜。

(4)GIF

这是一种有损压缩格式,主要用于网络传输动态图像和低颜色数量的图片。

GIF 格式支持动画、透明度和颜色压缩,但图像质量相对较低。

(5)TIFF

这是一种无损压缩格式,适用于专业摄影和图像处理。

TIFF 格式支持高质量图像存储,但文件体积较大。它适用于存储高质量的照片、插图和设计作品。

(6)SVG

这是一种基于 XML 的矢量图形格式,适用于网络和印刷设计。

SVG 格式支持图形、文字、动画和交互性,同时保持图像质量不变。

它适用于简单的图形和复杂的设计,但文件体积较大。

7、数字图像处理常见内容

图像二值化、图像变换、图像增强、图像拼接、图像压缩编码、图像分割、图像分析与描述、图像的识别等等。

后面章节将会详细介绍各种算法。

8、数字图像处理系统

输入(采集);存储;图像处理与分析;输出(显示);


本文将不断定期更新中,点⭐赞,收⭐藏一下,不走丢哦

本文由FPGA入门到精通原创,有任何问题,都可以在评论区和我交流哦

公众号为“FPGA入门到精通”学习资料分享,github开源代码:“FPGA知识库”

你的支持是我持续创作的最大动力!如果本文对你有帮助,请给一个鼓励,谢谢。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

文字、图片免费生成视频和专属数字人,你不来试试吗?

查看生成的效果:AI产生的视频(关注公众号,获取精彩内容) 您是否想要制作一些令人惊叹的视频,但又没有视频编辑的技能或经验?您是否想要利用人工智能的力量,让您的图片和声音变成动态的视频&…

二叉树链式结构的实现——C语言

目录 一、提前说明 二、二叉树的遍历 2.1前序遍历 2.2中序遍历 2.3后序遍历 2.4代码 三、二叉树结点个数 3.1整体思路 3.2代码 四、二叉树叶子结点个数 4.1整体思路 4.2代码 五、二叉树的高度(深度) 5.1整体思路 5.2代码 六、二叉树第k层节点个数 6.1整体…

selenium三猛士

selenium包括三个项目,分别是:Selenium WebDriver,Selenium IDE,Selenium Grid。 Selenium WebDriver Selenium WebDriver是客户端API接口,测试人员通过调用这些接口,来访问浏览器驱动,浏览器再访问浏览器…

数学建模 | MATLAB数据建模方法--机器学习方法

近年来,全国赛的题目中,多多少少都有些数据,而且数据量总体来说呈不断增加的趋势, 这是由于在科研界和工业界已积累了比较丰富的数据,伴随大数据概念的兴起及机器学习技术的发展, 这些数据需要转化成更有意…

Linux的基本指令(4)

目录 20.tar指令(重要):打包/解包,不打开它,直接看内容 21.bc指令 22.uname –r指令: 23.重要的几个热键[Tab],[ctrl]-c, [ctrl]-d 20.tar指令(重要):打包/解包&#…

Kubernetes(K8s)Pod控制器详解-06

Pod控制器详解 Pod控制器介绍 Pod是kubernetes的最小管理单元,在kubernetes中,按照pod的创建方式可以将其分为两类: 自主式pod:kubernetes直接创建出来的Pod,这种pod删除后就没有了,也不会重建 控制器创建…

分享85个节日PPT,总有一款适合您

分享85个节日PPT,总有一款适合您 85个节日PPT下载链接:https://pan.baidu.com/s/1FTbSj2Baix-Cj6n42Cz26g?pwd6666 提取码:6666 Python采集代码下载链接:采集代码.zip - 蓝奏云 学习知识费力气,收集整理更不易。…

语义分割 U-net网络学习笔记 (附代码)

论文地址:https://link.springer.com/chapter/10.1007/978-3-319-24574-4_28 代码地址:https://b23.tv/PCJJmqN 1.是什么? Unet是一种用于图像分割的深度学习网络模型,其结构由编码器和解码器组成,可以对图像进行像素…

深度学习 -- 神经网络

1、神经网络的历史 2、 M-P模型 M-P模型是首个通过模仿神经元而形成的模型。在M-P模型中,多个输入节点对应一个输出节点y。每个输入x,乘以相应的连接权重w,然后相加得到输出y。结果之和如果大于阈值h,则输出1,否则输出0。输入和输出均是0或1。 公式2.1: …

【代码】多种调度模式下的光储电站经济性最优 储能容量配置分析matlab/yalmip

程序名称:多种调度模式下的光储电站经济性最优储能容量配置分析 实现平台:matlab-yalmip-cplex/gurobi 代码简介:代码主要做的是一个光储电站经济最优储能容量配置的问题,对光储电站中储能的容量进行优化,以实现经济…

08-中介者模式-C语言实现

中介者模式: Define an object that encapsulates how a set of objects interact.Mediator promotes loose coupling by keeping objects from referring to each other explicitly,and it lets you vary their interaction independently.(用一个中介对…

2243:Knight Moves

文章目录 题目描述思路1. DFS2. BFS3. 动态规划 解题方法1. DFS2. BFS3. 动态规划 题目描述 题目链接 翻译如下: 注:骑士移动是和象棋里的马一样走的是日字型 你的一个朋友正在研究旅行骑士问题 (TKP),你要找到最短的…

结合贝叶斯定理浅谈商业银行员工异常行为排查

1.贝叶斯定理的数学表达 贝叶斯方法依据贝叶斯定理。关于贝叶斯定理解释如下:首先我们设定在事件B条件下,发生事件A的条件概率,即 ,从数学公式上,此条件概率等于事件A与事件B同时发生的概率除以事件B发生的概率。 上述…

VUE语法-(readonly的用法)将数据设置成只读模式

1、功能概述 在Vue中定义一个变量,这个变量的值不允许被修改,核心是通过readonly设置成只读。 如果不会使用ref和reactive响应式数据参考如下博客: https://blog.csdn.net/tangshiyilang/article/details/134701103 2、具体实现 如下案例…

轻量级万物分割SAM模型——MobileSAM安装实测摘要

目录 0、前言1、准备工作安装python环境说明安装说明 运行测试app安装依赖修改代码 2、实际测试效果自带图片测试其它图片测试1其它图片测试2 总结 0、前言 本文将介绍一种轻量级万物分割SAM模型——MobileSAM的安装和实测情况。SAM是meta公司的一种图像分割大模型&#xff0c…

摩根士丹利:人工智能推动增长

摩根士丹利(NYSE:MS)将人工智能战略整合到其财富管理业务中,标志着竞争性金融格局迈出了变革性的一步。该公司的人工智能计划,包括与 OpenAI 合作开发人工智能聊天机器人,促进了其财富部门的显着增长。值得…

VSCode 开发C/C++实用插件分享——codegeex

VSCode 开发C/C实用插件分享——codegeex 一、codegeex 一、codegeex CodeGeeX 智能编程助手是一款编程插件,CodeGeeX支持多种主流IDE,如VS Code、IntelliJ IDEA、PyCharm、Vim等,同时,支持Python、Java、C/C、JavaScript、Go等多…

C++学习之路(十六)C++ 用Qt5实现一个工具箱(为屏幕颜色提取功能增加一个点击复制的功能)- 示例代码拆分讲解

上篇文章,我们用 Qt5 实现了在小工具箱中添加了《颜色代码转换和屏幕颜色提取功能》功能。今天我们把屏幕颜色提取的功能再扩展一下,让它可以点击复制吧。下面我们就来看看如何来规划开发这样的小功能并且添加到我们的工具箱中吧。 老规矩,先…

CKafka 一站式搭建数据流转链路,助力长城车联网平台降低运维成本

关于长城智能新能源 长城汽车是一家全球化智能科技公司,业务包括汽车及零部件设计、研发、生产、销售和服务,旗下拥有魏牌、哈弗、坦克、欧拉及长城皮卡。2022年,长城汽车全年销售1,067,523辆,连续7年销量超100万辆。长城汽车面向…

mysql手动事务

目录 🚀🚀 简要 手动事务使用案例 事务的特性 事务的隔离级别 脏读 不可重复读 幻读 查看事务隔离级别 设置隔离级别 🫡🫡 简要 mysq事务是自动提交的, 例如insert, update语句等 如下: 想要手动设置mysql事务就需…