图像处理基础知识

图像处理基础知识

图像

1、模拟图像

模拟图像,又称连续图像,是指在二维坐标系中连续变化的图像,即图像的像点是无限稠密的,同时具有灰度值(即图像从暗到亮的变化值)。

2、数字图像

数字图像,又称数码图像或数位图像,是二维图像用有限数字数值像素的表示。

数字图像是由模拟图像数字化得到的、以像素为基本元素的、可以用数字计算机或数字电路存储和处理的图像。

通常的二维数字图像是一个矩阵,可以用一个二维数组 f(x,y) 来表示,其中 x,y 是二维空间中的某坐标系的坐标,f(x,y) 表示图像在该点处的灰度值等性质。

3、颜色模式(颜色存储)

颜色具有三个特性,即色相,明度和饱和度。颜色的三个特性及其相互关系可以用三度空间的颜色立体说明。

颜色模式,是将某种颜色表现为数字形式的模型,或者说是一种记录图像颜色的方式。分为:RGB模式、CMYK模式、HSB模式、Lab模式、位图模式、灰度模式、索引颜色模式、双色调模式和多通道模式。

● RGB模式(发光模式)

RGB 是最常用的彩色模式,RGB 分别代表红、绿、蓝三原色,RGB 采用此模式每个像素占用 3 个字节(一个字节 8 位),分别用于表示颜色的 R、G、B 分量(255、255、255)属加色模式 0-255(黑色-白色)。

特点文件小。色彩丰富且饱满。RGB模式是一种发光的彩色模式。屏幕上显示的图像,就一般都是以 RGB 模式,因为显示器的物理结构就是遵循 RGB 的 。

当3种基色的亮度值相等时,产生灰色;当3种亮度值都是255时,产生纯白色;而当所有亮度值都是0时,产生纯黑色。当3种色光混合生成的颜色一般比原来的颜色亮度值高,所以RGB模式产生颜色的方法又被称为色光加色法。

4、色彩模式(显示方式)

色彩模式是数字世界中表示颜色的一种算法,在数学世界中,为了表示各种颜色,人们通常将颜色划分为若干分量。由于成色原理的不同,决定了显示器、投影仪、扫描仪这类靠色光直接合成颜色的颜色设备和打印机、印刷机这类靠颜料的印刷设备在生成颜色方式上的区别。分为:RGB模式、CMYK模式、HSB模式、Lab模式、位图模式、灰度模式、索引颜色模式、双色调模式和多通道模式。

5、图像的分型

(1) 二值图像

只有黑白两种颜色。黑为0,白为1。二值图像适合于由黑白两色构成而没有灰度阴影的图像。

(2)灰度图像(GrayScale)

灰度图像矩阵元素的取值范围通常为[0,255]。因此其数据类型一般为8位无符号整数的(int8),这就是人们经常提到的256灰度图像。“0”表示纯黑色,“255”表示纯白色,中间的数字从小到大表示由黑到白的过渡色。灰度图像只有灰度颜色而没有彩色。我们通常所说的黑白照片,其实包含了黑白之间的所有灰度色调。

(3)索引颜色图像(Index Color)

颜色表红、绿、蓝分量值不全相等;像素值是图像颜色表的索引地址。

在这种模式下,颜色都是预先定义的,并且可供选用的一组颜色也很有限,索引颜色的图像最多只能显示256种颜色。

索引颜色通常也称为映射颜色,一幅索引颜色图像在图像文件里定义,当打开该文件时,构成该图像具体颜色的索引值就被读入程序里,然后根据索引值找到最终的颜色。

索引图像的文件结构比较复杂,除了存放图像的二维矩阵外,还包括一个称之为颜色索引矩阵MAP的二维数组。MAP的大小由存放图像的矩阵元素值域决定,如矩阵元素值域为[0,255],则MAP矩阵的大小为256Ⅹ3,用MAP=[RGB]表示。MAP中每一行的三个元素分别指定该行对应颜色的红、绿、蓝单色值,MAP中每一行对应图像矩阵像素的一个灰度值。

索引图像的数据类型一般为 8 位无符号整形(int8),相应索引矩阵MAP的大小为256Ⅹ3,因此一般索引图像只能同时显示256种颜色,但通过改变索引矩阵,颜色的类型可以调整。

索引图像一般用于存放色彩要求比较简单的图像,如Windows中色彩构成比较简单的壁纸多采用索引图像存放,如果图像的色彩比较复杂,就要用到RGB真彩色图像。

(4)真彩色RGB图像

RGB图像与索引图像一样,它分别用红(R)、绿(G)、蓝(B)三原色的组合来表示每个像素的颜色。

但与索引图像不同的是,RGB 图像每一个像素的颜色值(由RGB三原色表示)直接存放在图像矩阵中,由于每一像素的颜色需由 R、G、B 三个分量来表示,每个分量占 1 个字节,表示0到255之间的不同的亮度值,这三个字节组合可以产生1670万种不同的颜色。

M、N分别表示图像的行列数,三个M x N的二维矩阵分别表示各个像素的R、G、B三个颜色分量。RGB 图像的数据类型一般为8位无符号整形,通常用于表示和存放真彩色图像,当然也可以存放灰度图像。

RGB 图像按行列存储,每列含有三个通道(注意:通道的顺序是 BGR 而不是 RGB)

5、rgb图像和索引图像的主要区别

(1)RGB彩色模式图像:又叫加色模式图,是屏幕显示的最佳颜色,由红、绿、蓝三种颜色组成,每一种颜色可以有0-255的亮度变化。

(2)索引颜色图像:这种颜色下图像像素用一个字节表示它最多包含有256色的色表储存并索引其所用的颜色,它图像质量不高。它的数据信息包括一个数据矩阵和一个双精度色图矩阵,它的数据矩阵中的值直接指定该点的颜色为色图矩阵中的某一种,色图矩阵中,每一行表示一种颜色,每行有三个数据,分别表示该种颜色中红、绿、蓝的比例情况,所有元素值都在[0,1]内。占空间较少。通常用于网络上的图片传输、对图像像素、大小有严格要求的地方。

6、像素

像素是指由图像的小方格组成的,这些小方块都有一个明确的位置和被分配的色彩数值,小方格颜色和位置就决定该图像所呈现出来的样子。数字图像均由像素点构成,依据坐标原点位置的不同常分为两类,每个像素点标示为 I(r,c) 或 f(x,y)。灰度图像的值域 I 是一个一元标量: I=greylevel ;彩色图像的值域 I 是一个多元向量: 如 I=(r,g,b)。

可以将像素视为整个图像中不可分割的单位或者是元素。不可分割的意思是它不能够再切割成更小单位抑或是元素,它是以一个单一颜色的小格存在。

每一个点阵图像包含了一定量的像素,这些像素决定图像在屏幕上所呈现的大小。

7、分辨率

分辨率是度量位图图像内数据量多少的一个参数。通常表示成每英寸像素(Pixel per inch, ppi)和每英寸点(Dot per inch, dpi)。

(1)图像分辨率

图像中每单位长度上的像素数目,称为图像的分辨率,其单位为像素/英寸(PPI)或是像素/厘米。在相同尺寸的两幅图像中,高分辨率的图像包含的像素比低分辨率的图像包含的像素多。

图像的尺寸、图像的分辨率和图像文件的大小三者之间有着密切的联系。图像的尺寸越大,图像的分辨率越高,图像文件也就越大。调整图像的大小和分辨率即可改变图像文件的大小。

(2)屏幕分辨率

屏幕分辨率是显示器上每单位长度显示的点的数目 (DPI)。屏幕分辨率取决于显示器大小及其像素设置。

当图像分辨率高于显示器分辨率时,屏幕中显示的图像比实际尺寸大。

图像数学模型

1、两种基本的图像数学模型

连续模型

一般的图像都是能量的连续分布,我们前面所说的胶卷成像。

离散模型

把数字图像看成离散采样点的集合,每个点具有其各自的属性。处理运算就是对这些离散单元的操作。不能反映出图像的整体状态以及图像内容间的联系。用卷积进行操作会更好。

两个模型都各有优缺,但之后的方向还是离散模型,其便于计算机处理,之后我们主要还是从离散模型出发,进行图像处理。

2、图像数学模型的应用原则

在图像处理中,根据任务和目的的不同,经常会采用不同的模型来处理图像,或者在不同的阶段是用不同的模型,保证系统的最佳性能。图像在数字化时必须满足采样定理,这样离散的图像才能与它的连续形式对应。“数字图像处理”不是指“数字图像的处理”,而是指“图像的数字处理”。

3、采样定理

采样定理是美国电信工程师H.奈奎斯特在1928年提出的,在数字信号处理领域中,采样定理是连续时间信号(通常称为“模拟信号”)和离散时间信号(通常称为“数字信号”)之间的基本桥梁。该定理说明采样频率与信号频谱之间的关系,是连续信号离散化的基本依据。它为采样率建立了一个足够的条件,该采样率允许离散采样序列从有限带宽的连续时间信号中捕获所有信息。

4、数字化(连续 —> 离散)

将一幅图像从其原来的形式转换为数字形式的处理过程,包括“扫描” (scanning)、“采样” (sampling)与“量化”

(quantization)三个步骤。通常将“扫描”合并到“采样”阶段,合并为两个过程。

(1)采样

采样是将空间上连续的图像变换成离散的点,采样频率越高,还原的图像越真实。

采样把一幅连续图像在空间上分割成 M×N 个网格,每个网格用一亮度值来表示。一个网格称为一个像素。M×N 的取值满足采样定理。

(2)量化

量化是将采样出来的像素点转换成离散的数量值,一幅数字图像中不同灰度值得个数称为灰度等级,级数越大,图像越是清晰。

量化就是把采样点上对应的亮度连续变化区间转换为单个特定数码的过程。

量化后,图像就被表示成一个整数矩阵。每个像素具有两个属性:位置和灰度。位置由行、列表示。灰度表示该像素位置上亮暗程度的整数。此数字矩阵M×N就作为计算机处理的对象了。灰度级一般为0-255(8bit量化)。下图表示的是如何将连续的转化为离散的情况。

综合而言的数字化过程如下图所示,其表示的是从图像的真实来源,到最后的数字图像:

图像处理

数字图像处理包括内容:

● 图像数字化;

● 图像变换;

● 图像增强;

● 图像恢复;

● 图像压缩编码;

● 图像分割;

● 图像分析与描述;

● 图像的识别分类。

常用图像变换算法

图像的几何变换(图像畸变校正、图像缩放:双线性插值、旋转、拼接)

图像变换(傅立叶、余弦、沃尔什-哈达玛、K-L变换、小波变换)

图像频域处理(增强算法:高频率提升、同态滤波;平滑去噪:低通滤波)

图像增强

图像增强的目的是要改善图像的视觉效果,针对给定图像的应用场合,有目的的增强图像的整体或局部特性,将原来不清晰的图像变得清晰或增强某些感兴趣的特征,扩大图像中不同物体的特征之间的差别,抑制不感兴趣的特征,使之改善图像质量、丰富信息量,将强图像判读和识别效果,满足某些特征分析的需求。

常用图像增强方法:图像的线性变换;图像的非线性变化;图像的直方图均衡化和规定化。

图像复原

图像在形成、传输和记录中,由于成像系统、传输介质和设备的不完善,导致图像质量下降,这一现象称为图像退化。图像复原需知道图像退化的机制和过程等先验知识,据此找出一种相应的逆过程解算方法,从而得到复原的图像。如果图像已退化,应先做复原处理,再做增强处理。

常用的图像复原方法:

● 代数恢复方法:无约束复原;约束最小二乘法

● 频域恢复方法:逆滤波恢复法;去除由均匀运动引起的模糊;维纳滤波复原法

图像压缩

图像数据之所以可以被压缩,是因为数据中存在着冗余。在图像压缩中,有三种基本的数据冗余:编码冗余;像素间冗余;视觉冗余。

● 无损压缩:是对文件本身的压缩,和其它数据文件的压缩一样,是对文件的数据存储方式进行优化,采用某种算法表示重复的数据信息,文件可以完全还原,不影响文件内容,对于数字图像而言,也不会使图像细节有任何损失。无损(亦称无失真、无误差、信息保持)编码中删除的仅仅是图像数据中冗余的数据,经解码重建的图像和原始图像没有任何失真。

● 有损压缩:是对图像本身的改变,在保存图像时保留了较多的亮度信息,而将色相和色纯度的信息和周围的像素进行合并,合并的比例不同,压缩的比例也不同,由于信息量减少了,所以压缩比可以很高,图像质量也会相应的下降。有损(亦称有误差、有失真)编码是指解码重建的图像与原图像相比有失真,不能精确的复原,但视觉效果上基本相同,是实现高压缩比的编码方式。

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

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

相关文章

Jenkins CI/CD 持续集成专题一 Jenkins的安装和配置

一 jenkins 官方教程 安装Jenkins 二 安装 2.1 安装方式一 通过安装包的package方式安装 第一步下载链接: Download the latest package 第二步操作方式:打开包装并按照说明操作 2.2 安装方式二 brew安装 第一 安装最新版本jenkins brew install …

C语言进阶课程学习记录 - 函数的意义

C语言进阶课程学习记录 - 函数的意义 实验-声明与定义小结 本文学习自狄泰软件学院 唐佐林老师的 C语言进阶课程&#xff0c;图片全部来源于课程PPT&#xff0c;仅用于个人学习记录 实验-声明与定义 //global.c #include <stdio.h>//int g_var 10;//case1float g_var …

极客时间《SQL必知必会》学习笔记

开篇词丨SQL可能是你掌握的最有用的技能 尽管技术人员或多或少地会使用 SQL&#xff0c;但不同的人编写出来的 SQL 的效率是不同的&#xff0c;比如说一份好的 SQL 执行计划就会尽量减少 I/O 操作&#xff0c;因为 I/O 是 DBMS &#xff08;数据库管理系统&#xff0c;Database…

上位机图像处理和嵌入式模块部署(树莓派4b进行驱动的编写)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 树莓派4b上面还支持驱动代码的编写&#xff0c;这是我没有想到的。这里驱动&#xff0c;更多的是一种框架的编写&#xff0c;不一定是编写真正的驱…

提取出图像的感兴趣区域

这是我们的原图像 将图像的数值统计后进行条形图展示 import matplotlib.pyplot as plt from PIL import Image import numpy as np# 图像路径 image_path r"D:\My Data\Figure\OIP.jpg"# 打开图像 image Image.open(image_path)# 将图像转换为numpy数组 image_ar…

C#控制台相关方法

控制台相关方法 文章目录 控制台输入1、清空2、设置控制台3、设置光标位置&#xff0c;1y 2x4、设置颜色相关5、光标显隐6、关闭控制台思考 移动方块 控制台输入 //如果ReadKey(true)不会把输入的内容显示再控制台上 char c Console.ReadKey(true).KeyChar;1、清空 ​ Cons…

poll实现echo服务器的并发

poll实现echo服务器的并发 代码实现 #include <stdio.h> #include <string.h> #include <sys/types.h> #include <sys/socket.h> #include <stdlib.h> #include <arpa/inet.h> #include <sys/time.h> #include <unistd.h> #…

C++ 初识模板

目录 0.前言 1.泛型编程 2.函数模板 2.1概念 2.2格式 2.3原理 2.4函数模板的实例化 2.4.1隐式实例化 2.4.2显式实例化 2.5模板参数的匹配原则 3.类模板 3.1类模板的定义格式 3.2类模板的实例化 4.结语 &#xff08;图像由AI生成&#xff09; 0.前言 在 C 中&a…

密码学 | 承诺:常见的承诺方案

&#x1f951;原文&#xff1a;密码学原语如何应用&#xff1f;解析密码学承诺的妙用 - 知乎 1 简介 密码学承诺 涉及 承诺方、验证方 两个参与方&#xff0c;以及以下两个阶段&#xff1a; 承诺阶段&#xff1a;承诺方选择一个敏感数据 v v v&#xff0c;为它计算出相应…

【团体程序设计天梯赛】L2-052 吉利矩阵

思路&#xff1a; 直接回溯枚举每一个位置填的数&#xff0c;二维肯定是不方便的&#xff0c;我们转成一维&#xff0c;下标x从0到n*n-1。二维数组下标从0到n-1&#xff0c;在一维中下标为x的点在二维中对应行是x/n&#xff0c;列是x%n。 每个数最小能填的是0&#xff0c;最大…

总结线程池

目录 导言&#xff1a; 正文&#xff1a; 1.概念 2.线程池的组成和基本原理 3.使用ThreadPoolExecutor创建线程池 4.使用Executors 创建常见的线程池 总结&#xff1a; 导言&#xff1a; 虽然创建销毁线程比创建销毁进程更轻量&#xff0c; 但是在频繁创建销毁线程的时候…

深度学习transformer架构详细详解

一、transformer的贡献 transformer架构的贡献&#xff1a;该架构只使用自注意力机制&#xff0c;没有使用RNN或卷积网络。且可以实现并行计算&#xff0c;加快模型训练速度。 &#xff08;将所有的循环层全部换成&#xff1a;multi-headed self-attention&#xff09; 二、t…

JavaScript运算符(赋值、自增自减、比较、逻辑、展开、优先级)、分支语句(if、三元表达式、switch)、循环结构(while、for)、断点调试

目录 1. 运算符1.1 赋值运算符1.2 自增和自减运算符1.3 比较运算符1.4 逻辑运算符1.5 展开运算符1.6 运算符优先级 2. 分支语句2.1 if2.2 三元表达式2.3 switch 3. 循环结构3.1 while循环3.2 for循环 4. 断点调试 1. 运算符 1.1 赋值运算符 -*/% 1.2 自增和自减运算符 前置…

(C++) 树状数组

目录 一、介绍 二、一维树状数组 2.1 区间长度 2.2 前驱和后继 2.3 查询前缀和 2.4 点更新 三、一维数组的实现 3.1 区间长度函数 3.2 前缀和 3.3 插入/更新 3.4 封装成类 一、介绍 树状数组&#xff08;Binary Indexed Tree&#xff0c;BIT&#xff09;&#xff0c;又称为 …

ActiveMQ 如果数据处理出现异常会怎么样

我们有一个 Spring 的客户端&#xff0c;在处理消息的时候因为程序的原因出现消息处理异常。 对这种情况&#xff0c;ActiveMQ 会把出现异常的消息放在 DLQ 队列中进行持久化。 因此&#xff0c;在 ActiveMQ 消息处理队列中需要持续关注 DLQ 队列&#xff0c; DLQ 的队列都是无…

线段树汇总

线段树是一种二叉搜索树&#xff0c;与区间树相似&#xff0c;它将一个区间划分成一些单元区间&#xff0c;每个单元区间对应线段树中的一个叶结点。 使用线段树可以快速的查找某一个节点在若干条线段中出现的次数&#xff0c;时间复杂度为O(logN)。而未优化的空间复杂度为2N&a…

最新版的GPT-4.5-Turbo有多强

OpenAI再次用实力证明了&#xff0c;GPT依然是AI世界最强的玩家&#xff01;在最新的AI基准测试中&#xff0c;OpenAI几天前刚刚发布的GPT-4-Turbo-2024-04-09版本&#xff0c;大幅超越了Claude3 Opus&#xff0c;重新夺回了全球第一的AI王座&#xff1a; 值得一提的是&#xf…

【机器学习】重塑汽车设计与制造:实例与代码探索

机器学习重塑汽车设计与制造 一、机器学习在汽车设计中的应用二、机器学习在智能制造与生产中的应用 在数字化浪潮的推动下&#xff0c;机器学习技术正逐步成为汽车行业的创新引擎。从概念设计到智能制造&#xff0c;机器学习正以其独特的优势助力汽车产业的革新与发展。本文将…

实现基于RAG的QA应用程序

实现基于RAG的Q&A应用程序 LLM 支持的最强大的应用程序之一是复杂的 问答 &#xff08;Q&A&#xff09; 聊天机器人。这些应用程序可以 回答有关特定来源信息的问题。这些应用程序 使用一种称为检索增强生成 &#xff08;RAG&#xff09; 的技术。 什么是检索增强生成…

Golang | Leetcode Golang题解之第43题字符串相乘

题目&#xff1a; 题解&#xff1a; func multiply(num1 string, num2 string) string {if num1 "0" || num2 "0" {return "0"}m, n : len(num1), len(num2)ansArr : make([]int, m n)for i : m - 1; i > 0; i-- {x : int(num1[i]) - 0fo…