VisionMaster
1. VM能够做什么
2. 采集
3.模板匹配
4. 查找
5. 斑点分析
6. 边缘查找
7. 矩形检测
8. 位置修正(常用)
9. 平行线、四边形查找
10, 角平分线、中线、中垂线、平行线计算、路径提取
11. 图像处理
二次开发
VisionMaster的TCP通信
Group二次开发
Group模块的使用
OK/NG计数方案搭建
畸变校正和畸变校正的使用
本文档使用 MrDoc 发布
-
+
首页
Group二次开发
# 控件  # 引入模块 IMVSGroupCs # 修改 将复制本地改为False # 效果图  # 源码 ```C# using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using VM.Core; using IMVSGroupCs; using VM.PlatformSDKCS; using OpenCvSharp; using System.Drawing.Imaging; namespace Group二次开发 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } IMVSGroupTool mGroupTool = null; // 选择group按钮 private void button1_Click(object sender, EventArgs e) { OpenFileDialog cfd = new OpenFileDialog(); cfd.Filter = "Group文件|*.gro;"; DialogResult = cfd.ShowDialog(); if (DialogResult == DialogResult.OK) { textBox1.Text = cfd.FileName; } } // 导入group按钮 private void button4_Click(object sender, EventArgs e) { mGroupTool = IMVSGroupTool.LoadIndependentGroup(textBox1.Text); vmSingleModuleSetConfigControl1.ModuleSource = mGroupTool; } // 导出/保存group按钮 private void button3_Click(object sender, EventArgs e) { mGroupTool.Save(); } // 运行一次group并获取字符串和图像参数 private void button2_Click(object sender, EventArgs e) { mGroupTool.Run(); // 通过Group获取结果,渲染结果和数据结果,需要配置Group的显示设置和输出设置 vmParamsConfigWithRenderControl1.ModuleSource = mGroupTool; // 获取字符串输出 string radius = mGroupTool.ModuResult.GetOutputFloat("").pFloatVal[0].ToString(); // 获取图像输出 ImageBaseData_V2 groupImageData = mGroupTool.ModuResult.GetOutputImageV2(""); int width = groupImageData.Width; int height = groupImageData.Height; IntPtr imageByte = groupImageData.ImageData; // 数据 VMPixelFormat pixelFormat = groupImageData.Pixelformat; // 格式 } // 通过opencv或bitmap向group传入图像参数 private void button5_Click(object sender, EventArgs e) { // Group无图像源的输入图,用opencv从本地读 Mat matImage = Cv2.ImRead("", 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); mGroupTool.ModuParams.SetInputImage_V2("ImageData0", image); // Group无图像源的输入图,用Bitmap从本地读取 Bitmap bmp = new Bitmap(""); BitmapData bmdat = bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height), ImageLockMode.ReadOnly, PixelFormat.Format8bppIndexed); uint DataLen = (uint)(bmp.Width * bmp.Height); ImageBaseData_V2 image1 = new ImageBaseData_V2(bmdat.Scan0, DataLen, bmp.Width, bmp.Height, VMPixelFormat.VM_PIXEL_MONO_08); mGroupTool.ModuParams.SetInputImage_V2("ImageData0", image1); bmp.UnlockBits(bmdat); // 解除锁定 } } } ```
张泽楠
2025年8月17日 19:56
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码