18-OpenCVSharp 中实现 Halcon 的 get_domain算子(提取图像域)

专栏地址:

《 OpenCV功能使用详解200篇 》

《 OpenCV算子使用详解300篇 》

《 Halcon算子使用详解300篇 》

内容持续更新 ,欢迎点击订阅


在 OpenCVSharp 中实现 Halcon 的 get_domain 操作功能,我们需要用到 OpenCV 中的二值图像操作和图像掩膜等概念。GetDomain 是 Halcon 中用于提取图像域(即非零像素的区域)的算子,返回的是图像中所有非零像素的矩形区域的掩膜。

在 OpenCV 中,我们可以通过以下步骤来实现类似的功能:

  1. 创建一个二值图像,该图像包含输入图像中所有非零像素的位置。
  2. 使用该二值图像作为掩膜,生成与输入图像相同尺寸的矩形区域。

OpenCVSharp 代码实现 get_domain 功能

using OpenCvSharp;
using System;

namespace OpenCVSharpExample
{
   
    public class OpenCVOperations
    {
   
        /// <summary>
        /// 获取图像的域,即非零像素的矩形区域。
        /// 该函数将返回一个与输入图像大小相同的二值图像,其中非零像素区域为白色,其他区域为黑色。
        /// </summary>
        /// <param name="image">输入的图像,可以是任意类型的图像(灰度图、彩色图像等)。</param>
        /// <returns>与输入图像相同尺寸的二值图像,其中非零像素区域为白色(255),其他区域为黑色(0)。</returns>
        public static Mat GetDomain(Mat image)
        {
   
            // 确保输入图像是灰度图像
            if (image.Channels() > 1)
            {
   
                Cv2.CvtColor(image, image, ColorConversionCodes.BGR2GRAY); // 转为灰度图
            }

            // 创建二值图像,值为255(白色)表示非零区域,0表示零区域
            Mat domain = new Mat();
            Cv2.Threshold(image, domain, 1, 255, ThresholdTypes.Binary); // 任何非零值都将被设为255

            return domain;
        }

        // 测试代码
        public static void 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

观视界

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值