- Halcon的abs_diff_image 算子用于计算两幅图像或两个图像区域之间的绝对差异。
Cv2.AbsDiff() 函数
一、创建 AbsDiffImage 函数
- AbsDiffImage 函数将接受两幅图像,并计算它们之间的绝对差异。
using OpenCvSharp;
using System;
public class ImageProcessing
{
/// <summary>
/// 计算两幅图像的绝对差异。
/// </summary>
/// <param name="image1">第一幅图像,必须与第二幅图像具有相同的大小和通道数。</param>
/// <param name="image2">第二幅图像,必须与第一幅图像具有相同的大小和通道数。</param>
/// <returns>返回计算后的绝对差异图像。</returns>
/// <exception cref="ArgumentException">如果两幅图像的尺寸或通道数不一致,抛出异常。</exception>
public static Mat AbsDiffImage(Mat image1, Mat image2)
{
// 检查输入图像是否为空
if (image1.Empty() || image2.Empty())
{
throw new ArgumentException("输入图像为空。");
}
// 检查两幅图像的尺寸和通道数是否一致
if (image1.Size() != image2.Size() || image1.Channels() != image2.Channels())
{
throw new ArgumentException("两幅图像的尺寸或通道数不一致。");
}
// 计算两幅图像的绝对差异
Mat result = new Mat();
Cv2.AbsDiff(image1, image2, result);
return result;
}
}
二、函数解释
AbsDiffImage 函数:
参数:
- image1:第一幅输入图像。
- image2:第二幅输入图像。
- 返回值:计算两幅图像之间绝对差异后的图像。
- 异常:
如果输入图像为空,或图像的尺寸或通道数不一致,抛出异常。
三、资料
技能拾荒者《10-OpenCVSharp 中实现 Halcon 的 abs_diff_image算子(计算两幅图像的绝对差异)》
https://blog.csdn.net/weixin_45590420/article/details/143920578