首页 > 其他分享 >数字图像处理基础

数字图像处理基础

时间:2023-08-10 15:55:48浏览次数:35  
标签:采样 光强 数字图像处理 基础 灰度 图像 用于 数字图像

数字图像的感知和获取

图像是光与场景中的物质相互作用形成的,物质会对光进行反射与吸收

一幅图像记录的是物体辐射能量的空间分布:

\[I=f(x,y,z,\lambda,t) \]

这个函数是描述光强关于空间位置,频率,时间的

一般我们讨论的是平面单色静止图像,因此一个空间维度和后面的频率维度,时间维度都可以去除

注:这里的光强不一定是光的强度,但是大多数情况下,我们讨论的是光的强度,这就意味着我们会着手于光的强度的性质

简单的成像模型

当图像是上面简化的平面单色静止图像时有:

\[f(x,y)=i(x,y)r(x,y) \]

其中 \(i(x,y)\) 是入射光强,\(r(x,y)\) 是表面的反射能力

这个模型在cg中很常见,尤其是光线追踪逆向推导光强的时候

数字图像的采样和量化

实际图像是连续的空间中连续值域的函数,但是我们需要将其转化为离散空间中离散值域的函数

其中,对于空间坐标的离散化叫做采样,对于图像的光强的离散化叫做量化

由于我们讨论的是单色的图像,所以我们的光强实际上的一种灰度的东西,常见的一种量化方式,就是等间隔量化,用一个数字来描述一个区间的灰度,并且区间的间隔是相同的

同样对于图像而言,我们也有相似的采样方法,空间分辨率,就是每间隔相同的一段的采样相同,一般情况下,采样数越高,意味着我们的数字图像越能有效的反应我们的原本图像

在我们上述的空间分辨率和等间隔量化告诉我们,我们很自然的可以用矩阵来代表一个数字图像,矩阵中的元素叫做像素,对应的值叫做像素值

动态范围:图像中灰度的范围(最高值和最低值的区间)

图像对比度:一幅图像中最高和最低灰度的灰度差

反差比:一幅图像中最高和最低的灰度级的比率

高动态范围,高对比度

低动态范围,低对比度

几种数字图像类型

黑白图像

灰度图像

真彩色图像

像素间的基本关系

相邻像素

4邻域,D邻域,8邻域

连通性

4连通,8连通,m连通

距离

在数学上,只要满足这样的定义都可以叫做距离:

  1. \(D(p,q) \geq 0\) 且当且仅当 \(p=q\) 时等于0
  2. \(D(p,q)=D(q,p)\)
  3. \(D(p,z)\leq D(p,q)+D(q,z)\)

第三个实际上是三角法则

这意味着距离实际上对应着一个某种意义上的最短路

欧式距离

\(D_e(p,q)=\sqrt{(x-s)^2+(y-t)^2}\)

\(D_4\)距离

\(D_4(p,q)=\abs{x-s}+\abs{y-t}\)

\(D_8\)距离

\(D_8(p,q)=max{(\abs{x-s},\abs{y-t})}\)

可以看到上面的不同距离分别对应了不同意义上的最短路

Matlab的图像处理

在MATLAB中,用于图像处理的主要类包括:

  1. uint8uint16double等图像数据类型:这些类用于表示不同精度和范围的图像数据。例如,uint8用于表示8位无符号整数图像,uint16用于表示16位无符号整数图像,double用于表示双精度浮点数图像。

  2. imread:用于读取图像文件并将其加载到MATLAB中。它返回一个表示图像的矩阵。

  3. imwrite:用于将图像数据保存为图像文件。它接受图像矩阵和文件名作为输入。

  4. imshow:用于显示图像。它接受图像矩阵作为输入,并在MATLAB图形窗口中显示图像。

  5. imresize:用于调整图像的大小。可以通过指定目标大小或缩放因子来调整图像的尺寸。

  6. imadjust:用于调整图像的对比度和亮度。可以使用不同的参数来修改图像的灰度级范围。

  7. rgb2gray:用于将彩色图像转换为灰度图像。

  8. imfilter:用于对图像应用各种滤波器,例如平滑滤波、锐化滤波等。

  9. imrotate:用于旋转图像。

  10. imcrop:用于裁剪图像。

标签:采样,光强,数字图像处理,基础,灰度,图像,用于,数字图像
From: https://www.cnblogs.com/zzqdeco/p/shu-zi-tu-xiang-chu-li-ji-chu.html

相关文章

  • C/C++基础知识点
    C和C++的区别C++是C的超集,C是面向过程化的结构性语言,而C++是面向对象的编程语言C语言更偏向于底层,使用较为灵活,可移植性强,而C++更偏向于上层,可扩展性强,对于大型项目往往使用C++C++在C语言的基础上提出了STL标准模板库,函数模板等特性static关键字的作用隐藏,凡事变量前添加s......
  • 盘点一个列表相加的Python基础题目
    大家好,我是皮皮。一、前言前几天在明佬的Python群【dq】问了一个Python列表基础处理的问题,一起来看看吧。下图是他的原始列表,想通过左边的列表,得到右边的合并列表。二、实现过程这里【流水线】和【hclw】大佬给了一个答案,如下图所示:如此顺利地解决了粉丝的问题。后来他自......
  • # yyds干货盘点 # 盘点一个列表相加的Python基础题目
    大家好,我是皮皮。一、前言前几天在明佬的Python群【dq】问了一个Python列表基础处理的问题,一起来看看吧。下图是他的原始列表,想通过左边的列表,得到右边的合并列表。二、实现过程这里【流水线】和【hclw】大佬给了一个答案,如下图所示:如此顺利地解决了粉丝的问题。后来他自己也写了个......
  • Linux基础概念:历史、发展、发行版及命令行工具详解
    ·介绍:Linux是一种开源的、类Unix操作系统内核,它具有广泛的应用领域和强大的稳定性。本文将深入探讨Linux的历史与发展、常见的Linux发行版及其特点,以及常用的Linux命令行工具和基本操作。此外,还会提供个人见解和难点解析。一、Linux的历史与发展Linux的历史可以追溯到1991年,由芬......
  • 代码随想录算法训练营第十四天| 理论基础 递归遍历 迭代遍历
     理论基础    卡哥建议:需要了解 二叉树的种类,存储方式,遍历方式 以及二叉树的定义   文章讲解:https://programmercarl.com/%E4%BA%8C%E5%8F%89%E6%A0%91%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html   补充的知识点:   名词的概念看卡哥文章。二叉树......
  • docker基础及安装
    一、镜像(Image):镜像是一个只读的模板或蓝图,包含着用于创建容器的操作系统、应用程序和所有依赖项。镜像是静态的,一旦创建,其内容不会发生变化,可以被多个容器同时使用。镜像可以通过Dockerfile定义创建过程,也可以从DockerHub或私有仓库中获取已构建好的镜像。docker镜像就好比是一个......
  • Python基础知识总结
     前言     本总结所观看视频如下:变量,数字,字符串,注释_哔哩哔哩_bilibili【Python】3小时不挂_哔哩哔哩_bilibili目录前言一、基本命令 二、基本计算语句 三、字符串操作 四、官方文档的使用五、列表与元组 六、字典 七、集合 八、值类型变量与引用类型变量 九、pr......
  • 【机器学习|数学基础】Mathematics for Machine Learning系列之矩阵理论(12):相似形理论
    目录前言往期文章3.3线性变换的最简矩阵表示-相似形理论3.3.1一般数域上矩阵相似最简形定义3.9定理3.3.1前言Hello!小伙伴!非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~ 自我介绍ଘ(੭ˊᵕˋ)੭昵称:海轰标签:程序猿|C++选手|学生简介:因C语言结识编程,随后转入计算......
  • 【机器学习|数学基础】Mathematics for Machine Learning系列之矩阵理论(13):Hamliton-Cay
    目录前言Hello!小伙伴!非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~ 自我介绍ଘ(੭ˊᵕˋ)੭昵称:海轰标签:程序猿|C++选手|学生简介:因C语言结识编程,随后转入计算机专业,有幸拿过一些国奖、省奖…已保研。目前正在学习C++/Linux/Python学习经验:扎实基础+多做笔记+......
  • 【机器学习|数学基础】Mathematics for Machine Learning系列之矩阵理论(15):矩阵的范数
    前言Hello!小伙伴!非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~ 自我介绍ଘ(੭ˊᵕˋ)੭昵称:海轰标签:程序猿|C++选手|学生简介:因C语言结识编程,随后转入计算机专业,有幸拿过一些国奖、省奖…已保研。目前正在学习C++/Linux/Python学习经验:扎实基础+多做笔记+多......