halcon求图像相减:abs_diff_image

 版权声明:本文为博主原创文章,转载需注明出处。    https://blog.csdn.net/u013698770/article/details/53425870
abs_diff_image算子解析
  abs_diff_image算子能够得到两幅图像相减后的结果图,其结果是以绝对值的方式呈现。主要用于计算两幅图像的差异,可用于和图片的对比测试。

abs_diff_image(Image1, Image2 : ImageAbsDiff : Mult : )
Image1,Image2是输入图像
ImageAbsDiff是相减后的结果,是输出图像
Mult是放大倍数
相减公式:g' = |(Image1 - Image2)| * Mult
1
2
3
4
5
  不论输入的是彩色图像,还是灰度图像,该算子都能进行相减操作。但是如果是希望得到两幅图像在亮度上的差异,则建议使用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)
1
2
3
4
5
sub_image算子解析
  sub_image是计算两幅图像相减结果的实际值,这种相减有方向性,也就是说减数和被减数的位置调换会影响输出结果。如果相减后像素值小于零,其结果图中会被置0;同理,如果像素值大于255,也会被截断使其最大值为255。

sub_image(ImageMinuend, ImageSubtrahend : ImageSub : Mult, Add : ) 
ImageMinuend是被减图像
ImageSubtrahend是减去的图像
ImageSub是减后的结果图像
Mult是放大倍数
Add是附加灰度值
1
2
3
4
5
6
两者差异
  其差异是有两个方面: 
  (1)abs_diff_image是两幅图像相减的绝对值,而sub_image是相减后的实际值。 
  (2)abs_diff_image的计算结果没有附加灰度值参数,而sub_image又附加灰度值参数。该参数可用于提升图像整体的灰度。
--------------------- 
作者:罗泽 
来源:CSDN 
原文:https://blog.csdn.net/u013698770/article/details/53425870 
版权声明:本文为博主原创文章,转载请附上博文链接!

### 回答1: 您可以使用 Python 的 Pillow 库中的 ImageChops.difference 方法来计算两幅图像之间的绝对差异。下面是一个简单的示例: ``` from PIL import Image from PIL import ImageChops # 打开两幅图像 image1 = Image.open('image1.jpg') image2 = Image.open('image2.jpg') # 计算两幅图像的绝对差异 difference = ImageChops.difference(image1, image2) # 保存差异图像 difference.save('difference.jpg') ``` 希望这能帮到你! ### 回答2: 在Python中,使用OpenCV库可以很方便地计算两个图像的绝对差异。 首先,要确保已经安装了OpenCV库,可以使用pip install opencv-python命令进行安装。 接下来,可以使用以下步骤来计算两个图像的绝对差异: 1. 导入所需的库和模块: ```python import cv2 import numpy as np ``` 2. 读取两个图像文件: ```python image1 = cv2.imread('image1.jpg') image2 = cv2.imread('image2.jpg') ``` 这里假设图像文件的路径分别为'image1.jpg'和'image2.jpg'。 3. 转换图像类型为灰度图像(如果两个图像都是彩色图像): ```python gray_image1 = cv2.cvtColor(image1, cv2.COLOR_BGR2GRAY) gray_image2 = cv2.cvtColor(image2, cv2.COLOR_BGR2GRAY) ``` 这一步是为了确保两个图像的通道数一致。 4. 计算绝对差异图像: ```python diff_image = cv2.absdiff(gray_image1, gray_image2) ``` 这一步会得到绝对差异图像,即两个图像的每个像素的绝对差值。 5. 显示或保存结果: ```python cv2.imshow('Absolute Difference Image', diff_image) cv2.waitKey(0) cv2.destroyAllWindows() ``` 这一步可以将差异图像显示出来,也可以使用cv2.imwrite()保存到文件。 以上就是使用Python操作计算两个图像绝对差异的步骤。 ### 回答3: 用Python操作解两个图像的绝对差异,我们可以使用OpenCV库来实现。OpenCV是一个强大的计算机视觉库,提供了许多对图像进行处理和分析的功能。 首先,我们需要确保已经安装了OpenCV库,可以通过pip命令进行安装。 ```python pip install opencv-python ``` 接下来,我们可以使用`cv2.absdiff()`函数来计算两个图像的绝对差异。该函数接受两个图像参数,并返回一个表示绝对差异的图像。 ```python import cv2 def abs_diff_image(image1, image2): # 读取图像 img1 = cv2.imread(image1) img2 = cv2.imread(image2) # 计算绝对差异 diff = cv2.absdiff(img1, img2) # 显示绝对差异图像 cv2.imshow("Absolute Difference", diff) cv2.waitKey(0) cv2.destroyAllWindows() # 调用函数进行计算并显示结果 abs_diff_image("image1.png", "image2.png") ``` 在上述示例中,我们首先读取了两个图像,并将其传递给`cv2.absdiff()`函数。函数将返回一个表示绝对差异的图像,我们可以使用`cv2.imshow()`函数来显示绝对差异图像。最后,使用`cv2.waitKey(0)`等待用户按下任意键,然后使用`cv2.destroyAllWindows()`关闭所有打开的窗口。 请确保提供有效的图像路径(例如"image1.png"和"image2.png"),并确保这两个图像具有相同的尺寸和通道数才能成功计算绝对差异。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值