C#:图像反色功能invert_image

  • Halcon的invert_image算子即图像反色功能。
    我们可以通过简单的像素值反转来实现。对每个像素值,进行反转操作,具体来说,对于 8 位图像,反转的公式是 255 - pixel_value。
    这意味着每个像素的值从 0 变为 255,从 255 变为 0,中间的值进行相应的反转。

一、 创建 InvertImage函数

using OpenCvSharp;
using System;

public class ImageProcessing
{
    /// <summary>
    /// 反转图像(实现类似 Halcon 的 InvertImage 算子)。
    /// </summary>
    /// <param name="image">输入图像,可以是灰度图像或彩色图像。</param>
    /// <returns>返回反转后的图像。</returns>
    /// <exception cref="ArgumentException">如果输入图像为空,抛出异常。</exception>
    public static Mat InvertImage(Mat image)
    {
        // 检查输入图像是否为空
        if (image.Empty())
        {
            throw new ArgumentException("输入图像为空。");
        }

        // 创建一个空的结果图像
        Mat result = new Mat();

        // 使用 OpenCV 的 Bitwise_NOT 操作实现图像反转
        // Bitwise_NOT 会反转每个像素的二进制位
        Cv2.BitwiseNot(image, result);

        return result;
    }
}

二、函数解释

  • InvertImage 函数:
    参数:

    • image:输入图像,支持灰度图像和彩色图像。
    • 返回值:返回反转后的图像。
    • 异常:
      如果输入图像为空,抛出异常。
  • Cv2.BitwiseNot():
    该函数会反转图像中每个像素的二进制位,对于 8 位图像,这就相当于将每个像素的值从 0 变为 255,从 255 变为 0,以及对中间值进行类似的反转。

三、资料

技能拾荒者《12-OpenCVSharp 中实现 Halcon 的 invert_image 算子(图像的反图像功能)》
https://blog.csdn.net/weixin_45590420/article/details/143920751
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容