【matlab图像处理】图像处理的其他算术运算

中国史之【平三监之乱】:
三监之乱是西周初故商畿地区(今河南安阳附近)的三位贵族叛乱事件。周成王年少登基,周公摄政,管叔、蔡叔、霍叔与武庚等诸侯起兵反对周公。周公东征,诛武庚,杀管叔而放蔡叔,废霍叔为庶民,平定了三监之乱
——来源:全历史APP

俗话说:“好记性不如烂笔头”,多写写多记记,总不会错。多一些不为什么的坚持,少一些功利主义的追求。

今天介绍图像处理的其他算术运算,包括减法运算、乘法运算、除法运算。本内容参考自《实用MATLAB图像和视频处理》第6章。

  • 对于matlab2021的安装,可以参考公众号【CV之道】的文章:【matlab安装】手把手图文并茂安装matlab2021(win10版)

关于图像的算术运算,其实就是逐像素进行处理,即在图像中运算是独立作用于各个像素的。这里的运算操作可以是二值操作符,如常见的“加减乘除”。

1、减法的类型

减法用来检测两幅图像间的差别

这种差别可源于不同因素,如人为地对图像加入或除去相关内容,或者经典的帧差法,即计算一个视频序列中两帧间的相对运动,以及许多其他因素。

从一幅图像中减去一个常数(标量)将减少它的总体亮度,如下图所示。
【matlab图像处理】图像处理的其他算术运算_第1张图片

2、处理减法的溢出

同理,将两个像素值相减,会导致负值的出现。有两种方法可以解决溢出:将减法看做绝对差和截断结果使负的中间值变成0。

绝对差可以使用图像处理工具包中的内置函数imabsdiff来计算。截断或从一幅图像中减去另一幅图像,或者减去一个常数,可以用函数imsubtract。

另外,图像减法也可用来对一幅图像求反,就是黑像素变白像素,其公式为:
在这里插入图片描述
其中,Lmax是指最大可能的亮度值,如uint8是255,double是1.0,f是原图像素值,g是转换后的像素值。如下为求反的效果图。
【matlab图像处理】图像处理的其他算术运算_第2张图片

3、乘法和除法

同理,对一张图片使用一个标量进行图像乘法和除法,也是对图像的亮度进行调整。如果标量系数大于1,结果是更亮的图像,如果它大于0但小于1,则结果是更暗的图像,如下图所示。使用乘法进行增强,明显比加法要更剧烈。
【matlab图像处理】图像处理的其他算术运算_第3张图片

在matlab中,图像处理工具包有内置函数将两幅图像相乘或用一个常数乘以一幅图像,即immultiply函数。对于除法,则使用imdivide函数。

4、结合若干个算术操作

若对多张图像进行算术操作,则会明显加剧上下溢出问题。为获取更准确的结合,图像处理工具箱中提供了一个内置函数imlincomb,这个函数用双精度浮点数独立计算输出的每个像素,相对于直接截取要缓和得多。其代码如下:


res_img = imlincomb(1/3, img1, 1/3, img2, 1/3 img3, 'uint8')

5、算术操作总结


res = imadd(img1, img2) % 加法
res = imsubtract(img1, img2) % 减法
res = imabsdiff(img1, img2) % 绝对差
res = imcomplement(img1) % 求反
res = immultiply(img1, img2) % 乘法
res = imdivide(img1, img2) % 除法
res = imlincomb(1/3, img1, 1/3, img2, 1/3 img3, 'uint8') % 线性组合

【声明】:学习笔记基于互联网上各种学习资源的个人整理。

以上是本期内容,下期介绍图像处理的逻辑运算。

我叫小保,一名计算机视觉爱好者、学习者、追随者,欢迎关注我一起学习。

你可能感兴趣的:(图像处理,MATLAB,图像处理,matlab)