【matlab图像处理】图像处理的加法运算

中国史之【成康之治】:
成康之治指中国西周初周成王、周康王的治世。周成王继位时年幼,由周公旦摄政,平定三监之乱。周成王与其子周康王统治期间,国力强盛,文化昌盛,社会安定繁荣、百姓安居乐业,故被后世誉为“成康之治”。史家称“成康之际,天下安宁,刑错四十余年不用”。
——来源:全历史APP

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

今天介绍图像处理的加法运算。本内容参考自《实用MATLAB图像和视频处理》第6章。

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

1、加法的类型

加法用来结合两幅图像的像素内容,或对一幅图像的像素值加一个常数

(1)将两幅单色图像的内容加起来使得它们的内容混合,如下将两个图结合。

在这里插入图片描述
(2)将一个正数值(标量)加到一幅图像,可以增加图像亮度,当然,加上一个负数,就会使图像变暗。如下图。
在这里插入图片描述
(3)还可以给图像添加噪声,也就是对各个像素值加随机量,是一种常见的加噪方法。加噪的图像常用来测试算法稳健性。
在这里插入图片描述

2、处理加法的溢出

毕竟是像素值相加,有可能会出现像素值溢出的情况,也就是超出数据类型所允许的最大像素值。有两种方法可以解决溢出:归一化和截断。

1)归一化是对所有像素值进行统一的放缩。如将0255的范围归一化到01的范围。常用的归一化公式是:

在这里插入图片描述

其中Lmax是最大可能的亮度值,如uint8是255,double是1.0,f是当前像素值,分母是图像中最大的像素值减去最小的像素值。

2)截断就是很粗鲁地将溢出的像素值设为该数据类型的最大正数,如将300改为255。

在matlab中,两幅图像相加,可以使用函数imadd,其实使用的就是截断。举例如下:
在这里插入图片描述
我们先计算两个图像之和,然后分别用两种方法进行处理溢出的像素。

在这里插入图片描述
上面的方法是归一化,下面的方法是截断,可以使用imadd函数处理。

在这里插入图片描述
从上图可以看出,使用imadd函数,可以直接将大于255的像素值置为255。以下为代码:

>> X = uint8([200 100 100; 0 10 50; 50 250 120]);
>> Y = uint8([100 220 230; 45 95 120; 205 100 0]);
>> W = uint16(X) + uint16(Y); % 防止装不下,换成16>> fmax = max(W(:)) % 取最大

fmax =

  uint16

   350

>> fmin = min(W(:));
>> Za = uint8(255.0 * double((W - fmin))/double((fmax-fmin)))

Za =

  3×3 uint8 矩阵

   213   230   238
     0    50   105
   176   255    63

>> Zb = imadd(X,Y)

Zb =

  3×3 uint8 矩阵

   255   255   255
    45   105   170
   255   255   120

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

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

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

猜你喜欢

转载自blog.csdn.net/ling_xiobai/article/details/123474840