本文主要是介绍海康二次开发学习笔记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);
运行
- 选择路径,导入没有图像源的Group
- 定义输入图像源参数名为ImageData0
- 检查各模块图像源是否正确配置为ImageData0
- 加载图像
- 执行一次
可以看到,已从本地读图的图像已成功传入Group内部,两直线及其夹角也正确显示.
这篇关于海康二次开发学习笔记12-从Group外部输入图像的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!