其他图像的算术运算符一样,乘法有两种主要形式。第一种形式是需要两个输入图像,并产生一个输出图像,其像素值是第一张图像与第二幅图像中的相应值的乘积。第二种形式接受一个输入图像,产生输出图像,其像素值是第一张图像与一个常数乘积。后者可能更广泛地使用,通常被称为缩放。
这graylevel缩放不应混淆与几何缩放。
工作原理
两个图像的乘法是用下面的公式:
与常数的乘积是用下面的公式:
注意常数往往是一个浮点数,并可能小于1,它会降低图像的强度。它甚至可能是负的。
如果图像格式是矢量(如彩色图像),那么各个元素,红,绿,蓝,单独相乘产生结果。
如果计算的输出值比允许的最大像素值较大,那么他们可能会被截断成最大值,或者他们可以环绕,并由最低继续增加。
使用指南
有许多专家使用缩放。虽然在一般的,给定一个比例因子大于一,缩放将图像变亮。小于一的一个因素,它使图像变暗。缩放一般比简单地增加一个偏移产生更为自然的光亮/变暗的效果,因为它更好地保留了图像的相对对比度。例如,
显示了模型的机器人,在低照明条件下拍摄的图片。简单地扩大每个像素的3倍,我们获得
这个更清晰。然而,使用像素乘法时,我们应该确保计算的像素值不超过最大可能值。例如,如果我们将上面的图像乘以5倍(使用8位表示),我们得到
所有的像素,在原始图像中,数值超过最大值51以上(在这个例子),那么就会从255回至0。
上一个例子表明,如果乘法结果超出范围,重要的是要知道会发生什么。像素与像素的乘法很容易产生非常大的数字。如果图像处理软件支持,往往最安全的是设定一个大的范围,例如改变图像格式浮点运算。
缩放也可以应用于其他图像算法之前,以防止像素值超出范围,或防止整数量化破坏结果(就像整数图像分割)。
像素和像素的乘法一般用处不大,虽然有时一个二进制图像可以用来乘以另一个图像,以实现掩码。这种做法是用来将要保存的像素乘以1,将不要的像素乘以零。然而,对于整数格式的图像,常常是使用逻辑AND运算符,要更容易和更快。
像素由像素相乘的另一个用途是在频域进行过滤的图像。我们使用的一个例子来加以说明。
首先,我们对原始图像运用傅里叶变换,得到如下图像:
然后我们使用像素乘法对傅立叶域衰减一定的频率。在这个例子中,我们使用一个简单的低通滤波器(作为一个缩放的版本),可以看出
乘法的结果显示在
最后,进行傅立叶逆变换返回到空间域。最终的结果
显示了一个低通滤波器的平滑效果。频滤波处理表中给出了更多细节和例子。