图像运算

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

相关文章

  • Opencv第六课--图像的运算

    数字图像的运算 图像处理中最重要的内容之一就是图像的运算,图像像素的运算包括点运算、代数运算、逻辑运算,图像的几何...

  • OpenCV-Python学习(七):图像的基本运算及mask掩

    目录: 1.图像的基本运算加、减法图像混合按位运算 2.mask掩膜 一、图像的基本运算 加、减法 饱和运算:当运...

  • 图像的基本操作实现

    图像的点运算实现 线性点运算的实现 图像的线性点运算的实现代码如下所示: 图像线性点运算的实现效果如上图所示,当:...

  • 图像运算

    一幅图像在计算机里就是一个矩阵(如果是RGB彩色图像,就是3个矩阵,每个矩阵表示R,G,B每个通道的值),算术运算...

  • 1.7 openCV-python 图像运算

    学习图像上的算术运算,加法,减法,位运算等。 按位运算

  • [CV]图像的开运算、闭运算

    所谓开运算图像开运算是图像依次经过腐蚀、膨胀处理后的过程。图像被腐蚀后,去除了噪声,但是也压缩了图像;接着对腐蚀过...

  • ML之图像处理常识篇1

    基本常识篇 1、数字图像: 2、数字图像的运算:全局运算,点运算,局部运算 3、噪声:加性或乘性 4、对比度:灰度...

  • 图像处理算法的理论与实践

    图像处理算法的理论与实践 1. 图像的点运算 点运算指的是对图像中的每个像素依次进行同样的灰度变换运算,通常用于改...

  • CUDA01-00BMP图像处理

      开始GPU性能运算编程,使用图像处理是比较理想的方式,因为图像运算的性能是个问题;为了避免其他图像库带来的性能...

  • 2019-04-08 OpenCV学习

    06像素运算 运算要求:;两个图片大小,类型一致才能进行运算。 计算图像的均值和标准差:可以看出图像是否无效(都是...

网友评论

    本文标题:图像运算

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