abs_diff_image算子能够得到两幅图像相减后的结果图,其结果是以绝对值的方式呈现。主要用于计算两幅图像的差异,可用于和图片的对比测试。
abs_diff_image(Image1, Image2 : ImageAbsDiff : Mult : )
Image1,Image2是输入图像
ImageAbsDiff是相减后的结果,是输出图像
Mult是放大倍数
相减公式:g' = |(Image1 - Image2)| * Mult
不论输入的是彩色图像,还是灰度图像,该算子都能进行相减操作。但是如果是希望得到两幅图像在亮度上的差异,则建议使用rgb1_to_gray (Image1, GrayImage1)
如上算子将RGB图转为灰度图之后,再进行相减更能得到想要的结果。
read_image (Image1, 'F:/SZWX912/TestImage/Pic912/0002.bmp')
rgb1_to_gray (Image1, GrayImage1)
read_image (Image2, 'F:/SZWX912/TestImage/Pic912/0008.bmp')
rgb1_to_gray (Image2, GrayImage2)
abs_diff_image ( GrayImage1, GrayImage2, ImageAbsDiff, 1)
sub_image是计算两幅图像相减结果的实际值,这种相减有方向性,也就是说减数和被减数的位置调换会影响输出结果。如果相减后像素值小于零,其结果图中会被置0;同理,如果像素值大于255,也会被截断使其最大值为255。
sub_image(ImageMinuend, ImageSubtrahend : ImageSub : Mult, Add : )
ImageMinuend是被减图像
ImageSubtrahend是减去的图像
ImageSub是减后的结果图像
Mult是放大倍数
Add是附加灰度值
其差异是有两个方面:
(1)abs_diff_image是两幅图像相减的绝对值,而sub_image是相减后的实际值。
(2)abs_diff_image的计算结果没有附加灰度值参数,而sub_image又附加灰度值参数。该参数可用于提升图像整体的灰度。