图像运算

作者: ThompsonHen | 来源:发表于2020-03-17 20:55 被阅读0次

    一幅图像在计算机里就是一个矩阵(如果是RGB彩色图像,就是3个矩阵,每个矩阵表示R,G,B每个通道的值),算术运算就是两个矩阵对应位置像素的算术运算,逻辑运算类似

    图像算术运算

    图像加法:

    定义 C(x, y) = A(x, y) + B(x, y)

    主要应用:

    去除“叠加性”噪声

    如:
    对于原图像f(x,y),有一个噪声图像集{gi(x, y)} i = 1,2,3....M
    其中gi(x, y) = f(x, y) + hi(x, y)
    M个图像的均值定义为g(x, y) = 1 / M(g0(x, y) + g1(x, y) + … + gM(x, y))
    上述图像的均值将降低噪声的影响

    又如:
    一段摄像机静止下拍摄的视频,假设噪声比较明显(满足零均值高斯噪声条件),这段视频的每一帧求和再除以帧数,得到平均值,就能得到一幅干净的无噪声图像;两幅大小一样的图像相加,得到叠加效果

    生成图像叠加效果

    对于两个图像f(x, y)和h(x, y)的均值有:
    g(x, y)=1 / 2 * f(x, y)+1 / 2 * h(x, y)
    会得到二次暴光的效果。推广这个公式为:
    g(x, y)=αf(x, y)+βh(x, y)
    其中α + β = 1。


    图像1.png
    图像2.png
    将图像1和图像2进行图像加法.png

    图像减法:

    定义:C(x, y) = A(x, y) - B(x, y)

    主要应用:

    去除不需要的叠加性图案

    设:
    背景图像b(x,y),前景背景混合图像f(x,y)
    g(x, y) = f(x, y) – b(x, y)
    g(x,y)为去除了背景的图


    混合图像.png
    被减图像.png
    差影图像.png

    检测同一场景两幅图像之间的变化

    设:时间1的图像为T1(x, y)
    时间2的图像为T2(x, y)
    g(x, y) = T2(x, y) - T1(x, y)


    同一场景两幅图之间的变化.png

    计算物体边界的梯度

    在一个图像内,寻找边缘时,梯度幅度(描绘变化陡峭程度的量)的近似计算
    |Vf(x, y)|=max(|f(x, y)–f(x+1, y)| , |f(x, y)–f(x, y+1)|)

    图像乘法:

    定义:C(x, y) = A(x, y) * B(x, y)

    主要应用:

    图像的局部显示

    image.png
    image.png
    image.png

    如第一张图中的蝴蝶是由后两张图进行图像乘法得到的。

    用二值蒙板图像与原图像做乘法

    改变图像的灰度级

    原图.png
    乘1.2.png
    乘2.png

    图像除法:

    定义:C(x, y) = A(x, y) / B(x, y)

    主要应用:

    简单的除法运算可用于改变图像的灰度级,常用于遥感图像处理中。可产生对颜色和多光谱图像分析十分重要的比率图像。

    两张输入的图片.png
    输出的图片.png

    图像逻辑运算

    “求反”操作

    定义:g(x, y) = 255 - f(x, y)

    主要应用:

    获得一个阴图像

    获得阴图像.png

    获得一个子图像的补图像

    获得补图像.png

    绘制区别于背景的、可恢复的图形

    “异或、或”操作

    “异或”操作定义:

    图像的异或定义.png

    主要应用:

    获得相交子图像

    绘制区别于背景的、可恢复的图形

    异或操作.png
    两张二值图进行异或操作.png

    “或”操作定义

    或操作的定义.png

    主要应用

    合并子图像

    两子图像进行异或操作.png

    “与”操作

    定义 与操作的定义.png

    主要应用

    求两个子图像的相交子图

    两张子图进行与操作.png

    图像几何变换

    基本变换

    基本几何变换的定义

    对于原图像f(x, y),坐标变换函数
    x’ = a(x, y)
    y’ = b(x, y)
    唯一确定了几何变换:
    g(x’, y’) = f(a(x, y) , b(x, y));
    g(x,y)是目标图像。
    表面看没有值的改变。

    平移变换

    设:
    a(x, y) = x + x0;
    b(x, y) = y + y0;


    原始图像.png
    平移后的图像.png

    旋转变换:绕原点旋转α度

    设:
    a(x, y) = x * cos(α) - y * sin(α);
    b(x, y) = x * sin(α) + y * cos(α);


    图形旋转 原图和他的旋转后的图.png

    水平镜像:

    设:
    a(x, y) = -x;
    b(x, y) = y;


    水平镜像.png
    原始图像.png
    水平镜像.png

    垂直镜像

    设:
    a(x, y) = x;
    b(x, y) = -y;


    垂直镜像.png
    原始图像.png
    垂直镜像.png

    放缩变换:x方向放缩c倍,y方向放缩d倍

    设:
    a(x, y) = x * c;
    b(x, y) = y * d;

    拉伸变换

    拉伸变换.png

    离散几何变换的计算问题

    向前映射法

    g(x’, y’) = f(a(x, y) , b(x, y));
    从原图像坐标计算出目标图像坐标
    镜像、平移变换使用这种计算方法

    向后映射法

    g(a’(x, y) , b’(x, y)) = f(x, y);
    从结果图像的坐标计算原图像的坐标
    旋转、拉伸、放缩可以使用
    解决了漏点的问题,出现了马赛克

    灰度级插值

    最邻近插值法

    最临近点重复


    最邻近插值.png

    双线性插值(一阶插值)

    一阶双线性插值示意图.png

    已知正方形的4个顶点,求正方形内部的点,有双线性方程:
    f(x, y) =a * x + b * y + c * x * y + d
    设4个顶点的坐标为:
    (x0, y0) , (x1, y0) , (x0, y1) , (x1, y1)
    f(x, y0)=f(x0, y0) + x[f(x1, y0) – f(x0, y0)] / (x1 – x0)
    f(x, y1)=f(x0, y1) + x[f(x1, y1) – f(x0, y1)] / (x1 – x0)
    …….
    f(x, y)=f(x, y0) + y[f(x, y1) – f(x, y0)] / (y1 – y0)


    双线性插值(一阶插值).png

    高阶插值

    双线性插值的缺陷

    • 平滑作用使图像细节退化,尤其在放大时
    • 不连续性会产生不希望的结果

    高阶插值的实现

    • 用三次样条插值
    • 常用卷积来实现
    • 将大大增加计算量

    图像非几何变换

    非几何变换的定义

    对于原图像f(x, y),灰度值变换函数T(f(x, y))
    唯一确定了非几何变换:
    g(x, y) = T(f(x, y))
    其中g(x,y)是目标图像,在非几何变换过程中图像数据没有几何位置的改变。
    对于彩色原图像f(x, y),颜色值变换函数
    Tr(f(x, y));
    Tg(f(x, y));
    Tb(f(x, y));
    唯一确定了非几何变换:
    gr(x, y) = Tr(f(x, y))
    gg(x, y) = Tg(f(x, y))
    gb(x, y) = Tb(f(x, y))

    模板运算

    模板的定义

    所谓模板就是一个系数矩阵

    模板的大小

    经常是奇数,如:3x3 5x5 7x7

    模板的系数

    矩阵的元素
    w1 w2 w3
    w4 w5 w6
    w7 w8 w9

    模板运算的定义

    对于某图像的子图像:
    z1 z2 z3
    z4 z5 z6
    z7 z8 z9
    z5的模板运算公式为:
    R = w1z1 + w2z2 + ... + w9z9

    模板运算举例:均值变换

    模板系数:wi = 1/9
    计算公式:R = (w1 * z1 + w2 * z2 + ... + w9 * z9)


    原图.png
    均值变换后的图.png

    灰度级变换

    灰度级变换的定义(1)

    对于输入图像f(x, y),灰度级变换T将产生一个输 出图像g(x, y);
    且g(x, y)的每一个像素值,都是由f(x, y)的对应输 入像素点的值决定的。
    g(x, y) = T(f(x, y))

    灰度级变换的定义(2)

    对于原图像f(x, y),灰度值变换函数T(f(x, y))
    由于灰度值总是有限个如:0-255 非几何变换可定义为 :
    R = T(r)
    其中R,r均在在0-255之间取值

    灰度级变换的实现

    R = T(r) 定义了输入像素值与输出像素之 间的映射关系,通常通过查表来实现。
    因此灰度级变换也被称为LUT(Look Up Table)变换。


    灰度级变换映射举例.png

    灰度级变换举例

    图像求反

    原图.png
    求反.png

    对比度拉伸

    原图.png
    对比度拉伸之后.png
    拉伸对比度.png

    动态范围压缩

    原图.png
    压缩动态范围后.png
    对动态范围进行压缩.png

    灰度级切片

    灰度级切片.png

    直方图

    直方图的定义

    直方图的定义(1)

    一个灰度级别在范围[0,L-1]的数字图像的 直方图是一个离散函数
    p(rk)= nk / n
    n 是图像的像素总数
    nk是图像中第k个灰度级的像素总数
    rk 是第k个灰度级,k = 0, 1, 2, ..., L-1


    图像直方图.png

    直方图的定义(2)

    一个灰度级别在范围[0,L-1]的数字图像的直 方图是一个离散函数p(rk)= nk,k = 0,1,2,...,L-1
    由于rk的增量是1,直方图可表示为:p(k)= nk
    即,图像中不同灰度级像素出现的次数。

    两种直方图定义的比较

    p(rk)= nk
    p(rk)= nk / n

    使用第二种直方图定义的优点

    使函数值正则化到[0,1]区间,成为实数函数
    函数值的范围与像素的总数无关
    给出灰度级rk在图像中出现的概率密度统计

    较暗图像的直方图.png
    较亮图像的直方图.png
    对比度较低的直方图.png
    对比度较高直方图.png

    直方图应用举例

    直方图均衡化

    直方图匹配

    步骤
    原始图象灰度级k归一化在[0,1]之间, 0≤r≤1 ;
    计算原始图象灰度分布的概率密度函数p(r);
    直方图均衡化处理实际上就是寻找一个灰度变换函 数T,使变化后的灰度值s=T(r),其中s归一化为 0≤s≤1 ,即建立r与s之间的映射关系,要求处理后图象 灰度分布的概率密度函数,期望所有灰度级出现概率相同。

    直方图均值化.png
    结果:
    变换后直方图趋向平坦,灰级减少,灰度合并 ➢原始象零灰度级象素个数多于变换后,变换后零灰度级消失
    含有象素数多的几个灰级间隔被拉大了,压缩 的只是象素数少的几个灰度级
    实际视觉能够接收的信息量增强了

    相关文章

      网友评论

        本文标题:图像运算

        本文链接:https://www.haomeiwen.com/subject/wuegehtx.html