数字图像处理基础-用通俗语言进行超详细的总结

news2024/12/26 0:45:48

目录

图像感知与获取

韦伯定理

马赫带效应

图像获取

图像的采样和量化

图像内插(重采样)

图像的表示与描述

像素间的关系

exercise:4-邻域连通区域标记


本文章讲解数字图像处理的基础,大部分内容来源于课堂笔记中

图像感知与获取

人眼解剖图

屈光系统:光线由一种介质进入另一种不同折射率的介质时,会发生前进方向的改变,在眼光学中成“屈光”,屈光系统由角膜、房水、晶状体、玻璃体构成

感光系统:视网膜

视觉形成过程:物体(发射,反射)--->人眼屈光媒质--->感光细胞(视锥细胞、视杆细胞)--->感光细胞外节的光敏色素吸收光子后分解放出的能量形成膜电位发出信号--->通过突触传递给双极细胞和水平细胞,它们将信号作进一步处理后,传递给神经节细胞---->大脑皮层--->识别并产生视觉

视杆细胞:视网膜表面,负责黑白视觉,对光线的敏感程度非常敏感,主要用于暗视觉,左右人的夜视能力;对色彩没有感觉

视锥细胞:视网膜中央凹中间部分,对颜色高度敏感,具有三种类型:红色、绿色、蓝色感光细胞。常见色盲原因:其中一种视锥细胞发育出现问题

人眼聚焦:睫状体中的纤维根据目标远近,会压扁或加厚晶状体,从而改变焦距

韦伯定理

韦伯定理指出:差别阈限和标准刺激的强度成正比,并且差别阈限和标准刺激的比例是一个常数

\Delta Ic/I=K

以视觉为例,如果你在一个相对暗的房间中看到了两个光源,其中一个比另一个更亮,那么你可能会轻松地注意到它们之间的差别。但如果你在一个非常明亮的环境中,两个光源的强度差异需要更大才能被感知到相同的程度。这就是韦伯定律的体现:感知到的差别阈限与刺激强度成比例

然而,对于不同的感知系统、不同的感官以及不同的实验条件,韦伯比可能会略有变化。韦伯比大说明感知系统相对较不敏感,需要更大的刺激变化才能产生可察觉的差异。相反,韦伯比小说明感知系统相对较敏感,较小的刺激变化就足以引起可察觉的差异

马赫带效应

马赫带是一种主观的边缘对比效应。当观察两块亮度不同的区域时,边界处亮度对比加强,使轮廓表现得特别明显

马赫带效应的出现是人类的视觉系统造成的。生理学对马赫带效应的解释是:人类的视觉系统有增强边缘对比度的机制

图像获取

图像获取指的是将物体成像的过程,由“照射”源和形成图像的“场景”元素对光能的反射或吸收而产生的

图像获取主要有三种方式:使用单个传感器获取图像、使用条带传感器获取图像、使用传感器阵列获取图像

阵列传感器CCD

图像的采样和量化

图像采样是指从连续的图像中获取离散的样本或数据点的过程。想象一张图像是由无数个像素组成的,像素是图像中最小的单元。采样即是在图像中选取部分像素以表示整个图像。采样过程决定了图像的分辨率。高分辨率图像具有更多的像素,可以呈现更多的细节;低分辨率图像则只包含少量像素,细节较少 

图像量化是指将采样得到的图像数据转换为离散的数值表示的过程。数字图像中的每个像素需要用数字来表示。这个过程就是量化。常见的是将图像的亮度范围映射为数字值。例如,如果是灰度图像,可能使用 0 到 255 之间的整数来表示像素的灰度级别。0代表黑色,255代表白色

通俗地说,采样就像是用相机拍照,而量化则是将照片上的颜色和亮度转换成数字。采样决定了图像的清晰度和细节程度,量化则决定了图像的色彩和亮度等方面的表现

动态范围:描述了一张图片中最暗的地方到最亮的地方的亮度差异。想象一下你站在一个夏日的海滩上,太阳光照在沙滩上,海水里可能有一些阴影。动态范围就是指能在同一张照片中捕捉到这个阳光下明亮的沙滩和海水中较暗的阴影的能力

比如8比特的灰度图像,下述k=8

饱和度:图像中颜色的强度或纯度。高饱和度表示颜色非常鲜艳、明亮,而低饱和度则使颜色看起来更灰淡或淡淡的。想象一下一个色彩斑斓的花园照片,高饱和度可能使得花朵的颜色非常生动,而低饱和度则可能导致花色看起来更为柔和和淡雅

对比度:图像中亮和暗之间的差异程度。高对比度的图像中,明暗之间的差异非常明显,而低对比度的图像则使得明暗过渡更为平缓。想象一下一张黑白照片,高对比度可能导致清晰的黑白分界线,而低对比度则可能使得灰度变化更为平缓

均匀量化:将数据范围均匀地划分为若干个区间,然后将每个区间映射到一个离散值

非均匀量化:可以根据数据的分布情况不均匀地划分区间。这样可以更灵活地对图像进行量化,使得对图像中某些区域的细节更加敏感

空间分辨率:是指遥感图像上能够详细区分的最小单元的尺寸或大小,是用来表征影像分辨地面目标细节的指标

灰度分辨率:涉及到图像中可见的不同灰度层次或颜色层次的数量,比如8位灰度深度意味着256个不同的灰度级别

图像内插(重采样)

下采样/缩小图片:行列删除
上采样/放大图片:创建新的像素位置,对新位置上的像素赋值

针对图像内插,下面介绍三种不同的插值方法:

最近邻插值:把原图中最近邻的灰度赋给每个新像素

这种方法的优缺点很明显,优点就是实现简单、速度快,缺点就是容易产生马赛克效应

双线性插值:其核心思想是在两个方向分别进行一次线性插值

大致原理:分别在Q12Q22、Q11Q21的连线上,通过最邻近插值按比例算出R2、R1的f值,然后再在R1R2的连线上同理算出P的f值

优点: 比最近邻插值效果好,没有明显的块效应
缺点: 计算量比最近邻插值大,使图像细节退化

双三次插值使用16个邻近像素的灰度值进行插值计算,采用二次多项式的插值方法。这样可以更好地保留图像的细节,并减少缩放操作引入的伪影和失真

图像的表示与描述

图像一般用二维矩阵表示,矩阵元素 f (m, n)表示图像在第 m 行 第 n 列的像素值,称为像素

坐标索引

为了编程方便起见,在图像的描述中,我们以矩阵坐标系来定义图像的坐标

对于灰度图像,图像中每个像素信息由一个量化的灰度级描述,没有色彩信息,灰度图像的灰度级常为8bits,即0--255,0位纯黑,255位纯白

还有一种图像叫做二值图像或者是黑白图像,其只有两种像素值,要么纯黑,要么纯白

可以通过对灰度图像二值化变成黑白图像,变成黑白图像的图片,可通过分析图像连通区域估计一些东西的数量(比如统计下面米粒的数量)

像素间的关系

像素与像素之间的关系:

邻接:通常,如果像素在水平、垂直或对角线方向上相邻叫邻接

连接:通常指的是一组相邻的像素,它们在某种意义上被视为一个整体

连通:一组像素被称为连通,如果在这组像素之间存在一条路径,使得路径上的相邻像素之间也是相邻的。连通性通常用于描述图像中区域的完整性

通路:指的是连接两个像素的路径,这个路径可以通过相邻的像素进行跳跃,也可以是一条像素的序列

像素与集合之间也有上述的邻接、连接、连通关系

像素间的距离有多种定义:

欧式距离DE

曼哈顿距离D4(城区距离)

切比雪夫距离D8(棋盘格距离)

4-邻域(N4(p)) p为像素点的名称          

对角邻域/D-邻域(ND(p))

8-邻域(N8(p)):为4-邻域和D-邻域的相加

令V是用于定义邻接的灰度值集合

4-邻接:q在p的4-邻域N4(p)中,且它们都在V中取值,q在N4(p)中意味着p也在N4(q)中

8-邻接:同上,只不过是8-邻域

m-邻接/混合邻接:

1.两个像素p和q在V中取值
2.满足下列条件之一:
•q在N4(p)中,即两个像素p和q是4-邻接;
•q在ND(p)中,且N4(p)和N4(q)在V的意义下是空集,即N4(p)∩N4(r)不包含V中取值的像素

像素间的通路:是指连接两个像素的路径,这个路径可以通过相邻的像素进行跳跃,也可以是一条像素的序列,根据邻接方式不同有4-通路和8-通路

像素间的连通:S表示图像中像素一个子集,如果S中的两个像素p、q之间存在一个完全由S中像素组成的通路,则p和q在S中是连通的,也分为4-连通和8-连通

令R表示图像中像素的一个子集。若R是一个连通集,称R为图像的一个区域

若 Ri和 Rj形成一个连通集时,称 Ri和 Rj为邻接区域

边界:也称为区域的轮廓,是该区域的一个子集,但在其邻域中有不属于该区域的像素,它将该区域与其他区域分开。必须指定所用连接类型才能确定一个像素是否属于边界

比如,上图,如果定义连接类型为8-连接则圈住的1为于赋1值区域的边界,如果定义为4-连接,那么它的4-邻域没有赋1值区域以外的像素,那么它就不是边界了

exercise:4-邻域连通区域标记

4-邻域连通区域标记是图像处理中的一项基本任务,常用于标记图像中具有相同像素值且相邻的区域。下面是一个简单的Python代码示例,使用深度优先搜索(DFS)进行4-邻域连通区域标记:

def dfs(image, row, col, label, visited, connectivity=4):
    # 4-邻域的相邻像素坐标增量
    neighbors = [(-1, 0), (0, -1), (0, 1), (1, 0)] if connectivity == 4 else [(-1, 0), (0, -1), (0, 1), (1, 0), (-1, -1), (-1, 1), (1, -1), (1, 1)]
    
    # 标记当前像素
    image[row][col] = label
    visited[row][col] = True

    # 遍历相邻像素
    for dr, dc in neighbors:
        new_row, new_col = row + dr, col + dc
        # 检查相邻像素是否在图像范围内且未被访问
        if 0 <= new_row < len(image) and 0 <= new_col < len(image[0]) and not visited[new_row][new_col] and image[new_row][new_col] == 1:
            dfs(image, new_row, new_col, label, visited, connectivity)

def label_connected_regions(image, connectivity=4):
    rows, cols = len(image), len(image[0])
    visited = [[False for _ in range(cols)] for _ in range(rows)]
    label = 0

    for i in range(rows):
        for j in range(cols):
            if not visited[i][j] and image[i][j] == 1:
                label += 1
                dfs(image, i, j, label, visited, connectivity)

    return image

# 示例用法
image = [
    [1, 0, 1, 0],
    [1, 0, 1, 0],
    [0, 0, 1, 1],
    [1, 0, 0, 0]
]

result = label_connected_regions(image, connectivity=4)
print(result)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OpenStack云计算平台-块存储服务

目录 一、块存储服务概览 二、安装并配置控制节点 1、先决条件 2、安全并配置组件 3、配置计算节点以使用块设备存储 4、完成安装 三、安装并配置一个存储节点 1、先决条件 2、安全并配置组件 3、完成安装 ​四、验证操作 一、块存储服务概览 OpenStack块存储服务(c…

cineSync 3.3新功能: 深入iconik集成、激光工具、OTIOZ支持等

cineSync 3.3为大家带来了灵活性和精准度&#xff0c;使连接审阅会话与iconik中的媒体管理和存储更加容易&#xff0c;并且引入了颜色配置文件以快速测试颜色配置&#xff0c;还有通过激光指针等新工具带来新的可能性。 在ftrack&#xff0c;我们意识到当今的远程创意工作流比以…

Linux 排查必看文件

目录 1. 登录日志 1.1 /var/log/wtmp 1.2 /var/log/btmp.* 1.3 /var/log/lastlog 1.4 /var/log/faillog 1.5 /var/log/secure 1.6 /var/log/auth.log 2. 系统日志 2.1 /var/log/cron.* 2.2 /var/log/syslog 2.3 /var/log/audit/audit.*log 3. 历史命令 3.1 ~/…

16.Python 多进程和多线程

进程是应用程序正在执行的实体&#xff0c;当程序执行时&#xff0c;也就创建了一个主线程。进程在创建和执行需要占用一定的资源&#xff0c;如内存、文件、I/O设备等。 线程是CPU使用的基本单元&#xff0c;由主线程创建&#xff0c;并使用这个进程的资源&#xff0c;因此线…

大模型能否生成搜索引擎的未来?

文&#xff5c;郝 鑫 编&#xff5c;刘雨琦 ChatGPT火爆之前&#xff0c;水面下&#xff0c;也有中国公司也在朝着智能助手的方向努力。夸克便是其中之一。在GPT风靡科技圈后&#xff0c;国内就开始陆续冒出一些大模型厂商。对当时夸克而言&#xff0c;做大模型毋庸置疑&am…

3.2 Windows驱动开发:内核CR3切换读写内存

CR3是一种控制寄存器&#xff0c;它是CPU中的一个专用寄存器&#xff0c;用于存储当前进程的页目录表的物理地址。在x86体系结构中&#xff0c;虚拟地址的翻译过程需要借助页表来完成。页表是由页目录表和页表组成的&#xff0c;页目录表存储了页表的物理地址&#xff0c;而页表…

马克思主义基本原理课后题答案

吐血整理马原word版课后题答案&#xff0c;大家可以自行修改&#xff0c;持续更新中... 【限于篇幅原因&#xff0c;需要的同学可以点赞收藏后&#x1f44d;&#xff0c;扫码下方的公众号&#xff0c;回复相应关键词&#xff08;马原&#xff09;自行领取⭐~】

Hive内置表生成函数

Hive内置UDTF 1、UDF、UDAF、UDTF简介2、Hive内置UDTF 1、UDF、UDAF、UDTF简介 在Hive中&#xff0c;所有的运算符和用户定义函数&#xff0c;包括用户定义的和内置的&#xff0c;统称为UDF&#xff08;User-Defined Functions&#xff09;。如下图所示&#xff1a; UDF官方文档…

一站式企业快递管理平台使用教程

因公寄件在企业中重要性的提升&#xff0c;催生出了企业快递管理平台。为什么这么说呢&#xff1f; 随着经济和快递行业的发展&#xff0c;因公寄件在企业中成了一件“常事”&#xff0c;寄文件合同、发票、节假日慰问品、样品等等&#xff0c;这种情况之下&#xff0c;因公寄件…

需求变更导致估算不精准 6大措施

需求变更可能导致估算不精准、项目成本增加、进度延迟等问题&#xff0c;如果不能准确地估算项目&#xff0c;往往会造成资源浪费和开发效率的降低&#xff0c;因此亟需解决因需求变更导致地估算不精准的问题。 一般来说&#xff0c;主要是从以下6个方面入手解决&#xff1a; 1…

智驾芯片全矩阵「曝光」,这家企业的车载品牌正式官宣

随着汽车智能化加速&#xff0c;智能驾驶芯片格局逐渐清晰。 针对L0-L2&#xff0c;业内基本采用智能前视一体机方案&#xff1b;要实现高速NOA、城市NOA等更为高阶的智驾功能等&#xff0c;则基本采用域控制器方案。从前视一体机至域控&#xff0c;再逐步演进到舱驾一体、中央…

功率半导体器件CV测试系统

概述 电容-电压(C-V)测量广泛用于测量半导体参数&#xff0c;尤其是MOS CAP和MOSFET结构。MOS(金属-氧化物-半导体)结构的电容是外加电压的函数&#xff0c;MOS电容随外加电压变化的曲线称之为C-V曲线&#xff08;简称C-V特性&#xff09;&#xff0c;C-V 曲线测试可以方便的确…

缓存组件状态,提升用户体验:探索 keep-alive 的神奇世界

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

Mac OS 干货教学-超详细Wifi破解教学

Mac OS 干货教学&#x1f525;-超详细Wifi破解教学 尊重原创&#xff0c;编写不易 &#xff0c;帮忙点赞关注一下~转载小伙伴请注明出处&#xff01;谢谢 PS&#xff1a;学术交流&#xff0c;私自破解他人wifi可能要负担法律责任或让办公电脑被Hack黑客风险&#xff01;本次本…

bat批处理文件

常用的bat批处理命令 1、遍历移动文件最好将文件编码保存为 ANSI编码 新的改变 1、遍历移动文件 把子目录里面的文件批量移动到当前目录 &#xff08;或根目录&#xff09; 项目中要批量导入附件&#xff0c;但是收集的子公司员工信息&#xff0c;都是每个人一个文件夹的&…

电影《无价之宝》观后感

上周看了电影《无价之宝》&#xff0c;虽然电影已经出了两周了&#xff0c;但是看网上评分还挺好的&#xff0c;就没看当周新的电影&#xff0c;而是选择了这部。整部电影&#xff0c;偏向小生活的情景剧&#xff0c;讲述两个成年人&#xff0c;偏向地痞无赖的人物&#xff0c;…

openstack(2)

目录 块存储服务 安装并配置控制节点 安装并配置一个存储节点 验证操作 封装镜像 上传镜像 块存储服务 安装并配置控制节点 创建数据库 [rootcontroller ~]# mysql -u root -pshg12345 MariaDB [(none)]> CREATE DATABASE cinder; MariaDB [(none)]> GRANT ALL PR…

机器视觉尺寸测量仪 助力打造智能工厂!

摘要&#xff1a;机器视觉系统基本的特点就是提高生产的灵活性和自动化程度&#xff0c;目前机器视觉技术在蓬勃发展中&#xff0c;机器视觉尺寸测量仪是基于机器视觉原理制造而成的在线几何尺寸精密仪器。本文系统介绍一下该类测量设备。 机器视觉是什么&#xff1f; 简单来讲…

9.输出国际象棋盘【2023.11.24】

1.问题描述 要求输出国际象棋棋盘。 2.解决思路 国际象棋棋盘由64个黑白相间的格子组成&#xff0c;分为8行*8列。用i控制行&#xff0c;j控制列&#xff0c;根据ij的和的变化来控制输出黑方格还是白方格。 3.代码实现 #include<stdio.h> int main(){for(int i0;i&…

2.多行输入【2023.11.24】

1.问题描述 编写一个Python程序&#xff0c;将字符串 ‘Hello World!’ 存储在变量 str1 中&#xff0c;将字符串 ‘Hello Python!’ 存储在变量 str2 中&#xff0c;然后使用 print 语句分别将它们在不同行打印出来。 2.解决思路 使用print()函数即可 3.代码实现 str1&qu…