vm圆查找

VM圆查找

边缘类型

image.png

最强:只检测扫描范围内梯度最大的边缘点集合成的圆
最后一条:只检测范围内与圆心距离最大边缘点结合成的圆
第一条:只检测范围内与圆心距离最小边缘点结合成的圆

边缘极性

image.png
从黑到白:就是从黑(灰度值低)转白(灰度值高)的边缘
从白到黑:就是从白(灰度值高)转黑(灰度值低)的边缘

边缘阈值:只有边缘阈值梯度大于这个的边缘点才能被检测到
滤波尺寸:增强边缘性,更容易找到这个圆
卡尺数量:越多越精细,但运行变慢
image.png
image.png
剔除点数:剔除误差过大的最小点数量,最好搭配剔除距离一起使用(高级参数中)
image.png

### 关于 `vmRenderControl1` 的使用方法及示例 #### 绑定图像源到渲染控件 为了使 `vmRenderControl1` 显示特定的图像源,可以采用绑定的方式。具体来说,在 VM 平台中定义了一个名为 "流程1" 的工作流以及其中的一个图像源 "图像源1" 。要让 `vmRenderControl1` 展现来自这个指定路径下的图像资源,则需执行如下操作: ```csharp // 将 vmRenderControl 替换为实际使用的 vmRenderControl1 控件名 vmRenderControl1.ModuleSource = VmSolution.Instance["流程1.图像源1"] as VmModule; ``` 上述代码实现了将 `VmSolution` 实例下索引为 `"流程1.图像源1"` 的对象赋值给 `vmRenderControl1` 的 `ModuleSource` 属性,从而完成两者之间的关联[^1]。 #### 设置本地图片作为输入 如果目标是从文件系统加载一张静态图片并展示出来,那么先要在 VM 系统内部创建对应的图像源模块,并向其注入所需的媒体数据。之后再按照前述的方法将其连接至 `vmRenderControl1` 进行可视化处理: ```csharp // 创建一个新的 ImageSourceModuleTool 对象用于表示新的图像源 ImageSourceModuleTool testImage = (ImageSourceModuleTool)VmSolution.Instance["流程 1.图像源 1"]; // 此处假设已存在某种机制能够读取磁盘上的位图文件并将之转换成适合的形式供后续调用 testImage.LoadFromFile(@"C:\path\to\your\image.bmp"); // 接下来就是简单的属性指派过程了 vmRenderControl1.ModuleSource = testImage; ``` 这段伪代码展示了如何利用 `ImageSourceModuleTool` 类型的对象来装载外部图形资料,并最终呈现于界面上[^2]。 #### 动态调整 ROI 参数 对于某些高级应用场景而言,可能还需要动态改变感兴趣区域(Region of Interest, ROI),这同样适用于基于 `vmRenderControl1` 构建的应用程序。下面给出了一段示范性的脚本片段,说明怎样临时修改某个形检测工具内的矩形框位置及其大小: ```javascript var prc = VmSolution.Instance["流程1"] as VmProcedure; IMVSCircleFindModuTool tool = (IMVSCircleFindModuTool)prc["查找1"]; RectBox rectBox = new RectBox(new VM.PlatformSDKCS.PointF(800, 600), 300, 400, Math.PI / 4); tool.ModuParams.ModuRoiManager.RoiRectangle = rectBox; prc.Run(); ``` 这里的关键在于获取到了正确的模块实例后,就可以安全地访问和更改与其相关的配置选项,比如这里的 `RoiRectangle` 字段就决定了所关注范围的具体几何形状[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值