1. 图像加法运算
g ( x , y ) = f 1 ( x , y ) + f 2 ( x , y ) g(x,y) = f_1(x,y) + f_2(x,y) g(x,y)=f1(x,y)+f2(x,y)
1.1 和值处理
进行加法运算时,像素点的和值可能会超过灰度值范围,可采用以下方式处理:
如果 g ( x , y ) > 255 g(x,y)>255 g(x,y)>255,仍取 255 255 255。新图像 g ( x , y ) g(x,y) g(x,y)偏大,图像整体较亮。
g ( x , y ) = α f 1 ( x , y ) + ( 1 − α ) f 2 ( x , y ) g(x,y) = \alpha f_1(x,y) + (1-\alpha)f_2(x,y) g(x,y)=αf1(x,y)+(1−α)f2(x,y)
1.2 加法运算主要应用
- 多幅图像相加求平均去除叠加性噪声。若图像中存在的各点噪声为互不相关的加性噪声,且均值为0,对同一景物连续摄取多幅图像,再对多幅图像相加取平均,消除噪声;
- 将一幅图像的内容经配准后叠加到另一幅图像上去,以改善图像的视觉效果;
- 在多光谱图像中,通过加法运算加宽波段,如绿色波段和红色波段图像相加可以得到近似全色图像;
- 用于图像合成和图像拼接。
clc, clear, close all;
Image1 = imread('desert.jpg');
Image2 = imread('car.jpg');
Image3 = imadd(Image1, Image2);
imshow(Image3);
2. 图像减法运算
g ( x , y ) = f 1 ( x , y ) − f 2 ( x , y ) g(x,y) = f_1(x,y) - f_2(x,y) g(x,y)=f1(x,y)−f2(x,y)
2.1 差值处理
进行加法运算时,像素点的差值可能为负值,可采用以下方式处理:
如果 g ( x , y ) < 0 g(x,y)<0 g(x,y)<0,仍取 0 0 0。新图像 g ( x , y ) g(x,y) g(x,y)偏小,图像整体较暗。
g ( x , y ) = ∣ f 1 ( x , y ) − f 2 ( x , y ) ∣ g(x,y) = |f_1(x,y) - f_2(x,y) | g(x,y)=∣f1(x,y)−f2(x,y)∣
2.2 减法运算主要应用
- 显示两幅图像的差异,检测同一场景两幅图像之间的变化。如运动目标检测中的背景减法、视频中镜头边界的检测;
- 去除不需要的叠加性图案。叠加性图案可能是缓慢变化的背景阴影或周期性的噪声,或在图像上每一个像素处均已知的附加污染等,如电视制作的蓝屏技术;
- 图像分割。如分割运动的车辆,减法去掉静止部分,剩余的是运动元素和噪声;
- 生成合成图像。
Image1 = imread('desert.jpg');
Image2 = imread('car.jpg');
Image3 = imsubtract(Image1, Image2); % 截断处理
Image4 = imabsdiff(Image1, Image2); % 绝对值处理
imshowpair(Image3, Image4, 'Montage');
Image1 = imread('hallforeground.bmp');
Image2 = imread('hallback.bmp');
Image3 = imsubtract(Image2, Image1);
Image4 = imabsdiff(Image1, Image2);
imshowpair(Image3, Image4, 'Montage');