海康二次开发学习笔记12-从Group外部输入图像

从Group外部输入图像

用OpenCV从本地读图

当Group内部无图像源模块时,可以通过代码的方式将图片传入Group内部.实现方式有多种,可以使用OpenCV从本地读图,可在程序集搜索引用OpenCvSharp,同时将其复制本地的属性改为False.

1. 界面设计

增加加载图像按钮

在这里插入图片描述

2. 处理加载图像点击事件

    private void button5_Click(object sender, EventArgs e)
        {
            //Group无图像源的输入图,用opencv从本地读图
            Mat matImage = Cv2.ImRead(Application.StartupPath + "/GroupImage.jpg", ImreadModes.Grayscale);

            uint dataLen = (uint)(matImage.Width * matImage.Height);
            ImageBaseData_V2 image = new ImageBaseData_V2(matImage.Data,dataLen,matImage.Cols,matImage.Rows,VMPixelFormat.VM_PIXEL_MONO_08);
            groupTool.ModuParams.SetInputImage_V2("ImageData0",image);

        }

用Bitmap从本地读图

            //用bitmap从本地读图
            Bitmap bmp = new Bitmap(Application.StartupPath+"/GroupImage.jpg");
            BitmapData bitmapData = bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height), ImageLockMode.ReadOnly, PixelFormat.Format8bppIndexed);
            uint datalen = (uint)(bitmapData.Width * bitmapData.Height);
            ImageBaseData_V2 image1 = new ImageBaseData_V2(bitmapData.Scan0,datalen,bitmapData.Width,bitmapData.Height,VMPixelFormat.VM_PIXEL_MONO_08);
            groupTool.ModuParams.SetInputImage_V2("ImageData0",image1);
            bmp.UnlockBits(bitmapData);

运行

  1. 选择路径,导入没有图像源的Group

在这里插入图片描述

  1. 定义输入图像源参数名为ImageData0

在这里插入图片描述

  1. 检查各模块图像源是否正确配置为ImageData0

在这里插入图片描述

在这里插入图片描述

  1. 加载图像

在这里插入图片描述

  1. 执行一次

在这里插入图片描述

可以看到,已从本地读图的图像已成功传入Group内部,两直线及其夹角也正确显示.

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值