深入浅出图像处理:从像素到高级变换的全面解析

本文介绍了数字图像处理的基础知识,包括图像的定义、访问方式、RGB序列化。讨论了图像的仿射变换和线性变换,以及灰度处理算法,如图像反转、对数变换和伽马变换。此外,还提到了空间域的概念及其在图像处理中的应用,如直方图均衡化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是图像

        通过成像系统(相机)拍摄,数字化之后的图像就是一个二维数组(矩阵)

如何访问图像

        访问顺序:red  ->  green  ->  blue

                           宽          高         通道

        图像有单通道多通道之分,访问时只需要以多维数组的形式访问即可。

下面是一个代码示范

import numpy as np

# 假设 image 是一个 NumPy 数组,形状为 (nHeight, nWidth, nChannel)
# 其中 nChannel 通常为 3,代表 RGB 通道

# 定义图像数据的大小
nHeight = 100  # 图像的高度
nWidth = 100   # 图像的宽度
nChannel = 3   # 图像的通道数,通常是3(RGB)

# 创建一个随机的三维数组来模拟图像数据
image = np.random.randint(0, 256, (nHeight, nWidth, nChannel), dtype=np.uint8)

# 遍历图像数据
for i in range(nHeight):
    for j in range(nWidth):
        for k in range(nChannel):
            # 访问第i行,第j列,第k通道的像素值
            pixel_value = image[i, j, k]
            # ... 对像素值进行处理
            # 例如,这里我们只是打印出来
            print(f"Pixel value at ({i}, {j}, {k}) is: {pixel_value}")

        我们首先导入了NumPy库,并创建了一个形状为(nHeight, nWidth, nChannel)的随机数组

来模拟图像数据。

        然后,我们使用三个嵌套的for循环来遍历图像的每个像素值。

TIPS:图像就是多维数组

将 RGB图像 序列化

import numpy as np

# 假设 image 是一个 NumPy 数组,形状为 (nHeight, nWidth, 3)
# 其中 nHeight 和 nWidth 分别代表图像的高度和宽度

# 定义图像数据的大小
nHeight = 100  # 图像的高度
nWidth = 100   # 图像的宽度

# 创建一个随机的三维数组来模拟图像数据
image = np.random.randint(0, 256, (nHeight, nWidth, 3), dtype=np.uint8)

# 遍历图像数据,按照RGB顺序打印每个像素的颜色值
for i in range(nHeight):
    for j in range(nWidth):
        # 打印RGB通道的值
        print(f"R: {image[i, j, 0]}, G: {image[i, j, 1]}, B: {image[i, j, 2]}")

        我们首先导入了NumPy库,并创建了一个形状为(nHeight, nWidth, 3)的随机数组来模拟图

像数据。然后,我们使用两个嵌套的for循环遍历图像的每个像素,并按照RGB顺序打印每个像

素的颜色值。

问:什么是图像仿射变换

答:仿射变换就是  线性变化+平移  

问:什么是线性变换

答:线性变换是

        ① 变换前是直线的,变换后依然是直线

        ② 直线比例保持不变

常见的灰度处理算法

问:常见的灰度变换有哪些

答:

        ① 图像反转

        原理:灰度级数(256) - 当前灰度

        公式:S = L- 1 - r

        [ 0 , 255 ] 代表颜色的深浅

        ② 对数变换

        由对数变换的图像中我们可以很直观的看出

        由于对数本身上凸的性质

        它可以把低灰度(较暗)的部分的亮度提高,V越大,灰度提高越明显

        即图像越来越亮。

        ③伽马变换(Gamma) [可改变对比度]

        原理:Gamma变换其实就是幂指数校正,目的是将灰度较窄的地方拉伸为较宽的区域。

问:常见的灰度变换有哪些

答:直方图均衡化

        由于图像对比度不强,所以图像整体上较暗或者较亮(即图像灰度集中在直方图的两端)。

为了增加对比度,让图像看起来更清楚,所以有了直方图均衡化。

问:什么是空间域

答:空间域指图像平面本身,即图像中的每个像素单元。

问:为什么要用空间域这种难解的名字

答:空间域主要是为了区别变换域,变换域是将图像转移到其他的域(如频率域),在变化域做完

处理之后再通过反变换的方式转换回来。

问:空间域图像处理包含哪些方面

答:空间域图像处理主要包括灰度变换空间域滤波

绘制直方图

        在绘制直方图时,将灰度变换作为 X 轴处理

                                    灰度级出现的次数作为 Y 轴处理

        则可知:

                X 轴的数据为X= [1 2 3 4 5]

                Y 轴的数据为Y= [3 1 2 1 2]

        根据上述关系,可分别做出折线图和直方图。

一般情况下,折线图和直方图都被称为直方图。

        在实际处理中,图像直方图的 X 轴区间一般是[0,255],对应的是八位位图的256个灰度级

                                                        Y 轴对应的是具有相应灰度级的像素点个数。

图像的数字化表示与访问

        图像在计算机

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值