当前位置: 首页 > wzjs >正文

hishop多用户商城源码网络优化器下载

hishop多用户商城源码,网络优化器下载,芜湖建设公司网站,wordpress章节分页【机械视觉】C#VisionPro联合编程———【三、C#操作VisionPro工具详解(CogToolBlock ),以及实例】 在VisionPro中,CogToolBlock 是一种容器工具,可以将多个视觉工具(如CogBlob、CogPMAlign等)组合成一个可复用的流程…

【机械视觉】C#+VisionPro联合编程———【三、C#操作VisionPro工具详解(CogToolBlock ),以及实例】

在VisionPro中,CogToolBlock 是一种容器工具,可以将多个视觉工具(如CogBlob、CogPMAlign等)组合成一个可复用的流程。通过C#与VisionPro联合编程,可以动态加载、配置和执行这些工具链。

加载CogToolBlockTool 工具

核心步骤:

步骤 1:创建ToolBlock实例
// 创建CogToolBlock实例
CogToolBlock toolBlock = new CogToolBlock();
步骤 2:加载ToolBlock文件
VisionPro的ToolBlock通常保存为.vpp文件(通过QuickBuild导出)或.toolblock文件。
string toolBlockPath = @"C:\VisionPro\MyToolBlock.vpp";
try
{toolBlock = CogSerializer.LoadObjectFromFile(toolBlockPath) as CogToolBlock;
}
catch (Exception ex)
{MessageBox.Show("加载ToolBlock失败: " + ex.Message);return;
}
步骤 3:设置输入参数
通过Inputs属性设置ToolBlock的输入参数(例如图像、阈值等):
// 假设ToolBlock有一个名为"InputImage"的输入
ICogImage inputImage = CogImageConverter.ToCogImage(bitmap); // 将Bitmap转换为VisionPro图像
toolBlock.Inputs["InputImage"].Value = inputImage;// 设置其他参数(如阈值)
toolBlock.Inputs["Threshold"].Value = 128;
步骤 4:执行ToolBlock
// 执行ToolBlock
toolBlock.Run();// 检查执行状态
if (toolBlock.RunStatus.Result != CogToolResultConstants.Accept)
{MessageBox.Show("ToolBlock执行失败: " + toolBlock.RunStatus.Message);return;
}
步骤 5:获取输出结果
通过Outputs属性获取输出参数:
// 获取输出结果(例如检测到的坐标)
double x = (double)toolBlock.Outputs["OutputX"].Value;
double y = (double)toolBlock.Outputs["OutputY"].Value;// 获取检测结果图像
CogImage8Grey resultImage = toolBlock.Outputs["ResultImage"].Value as CogImage8Grey;
步骤6:保存工具
CogSerializer.SaveObjectToFile(toolBlock,path);  // 保存 

加载其他工具

// 加载CogPMAlignTool
Pma = (CogPMAlignTool)CogSerializer.LoadObjectFromFile("./pma.vpp");
// 加载CogCompositeColorMatchTool
Col = (CogCompositeColorMatchTool)CogSerializer.LoadObjectFromFile("./col.vpp");


完整示例代码

using Cognex.VisionPro;
using Cognex.VisionPro.ToolBlock;public void RunToolBlockExample()
{// 1. 加载ToolBlockCogToolBlock toolBlock = null;string toolBlockPath = @"C:\VisionPro\MyToolBlock.vpp";try{toolBlock = CogSerializer.LoadObjectFromFile(toolBlockPath) as CogToolBlock;}catch (Exception ex){MessageBox.Show("加载ToolBlock失败: " + ex.Message);return;}// 2. 设置输入参数Bitmap sourceBitmap = new Bitmap(@"C:\Images\test.bmp");ICogImage inputImage = CogImageConverter.ToCogImage(sourceBitmap);toolBlock.Inputs["InputImage"].Value = inputImage;toolBlock.Inputs["Threshold"].Value = 128;// 3. 执行ToolBlocktoolBlock.Run();// 4. 处理结果if (toolBlock.RunStatus.Result == CogToolResultConstants.Accept){double x = (double)toolBlock.Outputs["OutputX"].Value;double y = (double)toolBlock.Outputs["OutputY"].Value;CogImage8Grey resultImage = toolBlock.Outputs["ResultImage"].Value as CogImage8Grey;MessageBox.Show($"检测到坐标: ({x}, {y})");}else{MessageBox.Show("检测失败: " + toolBlock.RunStatus.Message);}// 5. 释放资源toolBlock.Dispose();\CogSerializer.SaveObjectToFile(toolBlock,path); 保存 
}



关键注意事项

输入输出参数名称

  • 必须与ToolBlock中定义的名称完全一致(区分大小写),否则会抛出异常。

ToolBlock激活状态

  • 确保ToolBlock在QuickBuild中已正确激活(通过右键菜单激活工具)。

异常处理

  • 使用try-catch捕获文件加载、参数设置等异常。
  • 检查RunStatus.Result判断工具执行是否成功。

资源释放

  • VisionPro对象(如CogImage、CogToolBlock)需要显式释放内存:
  • toolBlock.Dispose();

常见问题

加载ToolBlock时报错 "文件格式不支持"

  • 确保文件是通过QuickBuild导出的合法ToolBlock文件。

输入参数类型不匹配

  • 检查ToolBlock中参数的数据类型(如int vs double)。

执行速度慢

  • 优化ToolBlock内部工具的参数(如降低PMAlign的精度要求)。


加载CogToolBlockTool工具详解实例

实例效果:

在窗体加载时创建tb变量并且加载CogToolBlock给变量赋值,当点击打开图片时,根据设定好的路径打开图片并展示在cogRecordDisplay1上,点击更改图片时更改tb变量中的输入图片,点击测量时测量出图片结果并且展示。在窗体跳转时将CogToolBlock的变量传输到窗体2中并且展示在cogToolBlockEditV21上。

一、设置visionPro工具

二、编写form1窗体事件(以下是源码)

public partial class Form1 : Form
{public Form1(){InitializeComponent();}ICogImage image = null; // tb块的图片CogToolBlock tb = null;/// <summary>/// 打开图片/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void button1_Click(object sender, EventArgs e){image = cogRecordDisplay1.Image = ReadImage2();cogRecordDisplay1.Fit();}/// <summary>/// 读取图片的方式1/// </summary>/// <returns></returns>public ICogImage ReadImage1(){string path = @"C:\Program Files\Cognex\VisionPro\Images\nutsandbolts.bmp";CogImageFileTool fileTool = new CogImageFileTool();fileTool.Operator.Open(path,CogImageFileModeConstants.Read); // 读取图片fileTool.Run();return fileTool.OutputImage;}/// <summary>/// 读取图片的方式2/// </summary>/// <returns></returns>public ICogImage ReadImage2(){string path = @"C:\Program Files\Cognex\VisionPro\Images\nutsandbolts.bmp";Bitmap map = new Bitmap(path);ICogImage img = new CogImage8Grey(map); // 8 位的灰色// ICogImage img = new CogImage24PlanarColor(map); // 24位的位深图return img;}/// <summary>/// 更改图片/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void button3_Click(object sender, EventArgs e){tb.Inputs["OutputImage"].Value = image;}/// <summary>/// 跳转Form/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void button4_Click(object sender, EventArgs e){Form2 f2 = new Form2(tb);f2.ShowDialog();}/// <summary>/// 测量/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void button5_Click(object sender, EventArgs e){if (tb != null){// 把采集到的图像传输更改图片// tb.Ibputs 块的输入数据// ["OutputImage"] 块添加的图片// tb.Inputs["OutputImage"].Value = image;tb.Run();// 显示测量结果cogRecordDisplay1.Record = tb.CreateLastRunRecord().SubRecords[0]; // 把测量之后的记录赋值给控件cogRecordDisplay1的recordcogRecordDisplay1.Fit();int count = (int)tb.Outputs["Count"].Value;label1.Text = "显示斑点个数为:" + count;}}/// <summary>/// 加载TB块/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void Form1_Load(object sender, EventArgs e){string path = Directory.GetCurrentDirectory() + @"\blob.vpp";tb = (CogToolBlock)CogSerializer.LoadObjectFromFile(path);}
}

三、创建form2窗体并且设置cogToolBlockEditV21控件

四、编写form2窗体事件

public partial class Form2 : Form
{CogToolBlock tb;public Form2(CogToolBlock t){InitializeComponent();tb = t;}/// <summary>/// 加载/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void Form2_Load(object sender, EventArgs e){// 把传递过来的toolblock进行展示cogToolBlockEditV21.Subject = tb;}}

http://www.dtcms.com/wzjs/246717.html

相关文章:

  • 网站建设创业规划书中国最近新闻大事件
  • 做电影网站要几G空间的竞价推广的企业
  • wordpress一键安装包信息流优化师培训
  • 手机网站建设哪家好天津百度推广代理商
  • 东莞广告公司东莞网站建设十大引擎网址
  • 亚马逊网站建设案例分析百度域名注册
  • 做门户论坛与网站的区别如何找到网络公关公司
  • 个人网站开发的现状百度优化师
  • 昆明网站建设费用刷赞网站推广免费链接
  • wordpress xml插件下载郑州seo服务技术
  • 昆山网站建设网站建设在线网站排名工具
  • 项目网络式管理流程是长沙seo计费管理
  • 网站建设技术服务哪些行业适合做网络推广
  • 每天网站外链做几条最好爱站网官网
  • 姜堰网站定制惠州seo收费
  • 嘉兴网站推广巨量引擎app
  • 常见的网站空间有哪些北京seo技术
  • 微信公众号做微网站深圳最新政策消息
  • 网站关键词优化怎么做的枣庄网站建设制作
  • 建设网站需要做什么的青岛seo推广公司
  • 评论给网站带来的益处电商网站规划
  • 岗顶网站开发58同城推广效果怎么样
  • 常州哪家做网站便宜线上销售渠道有哪些
  • 开发公司与物业公司前期合同东莞seo关键词排名优化排名
  • 帝国做视频网站市场营销毕业后找什么工作
  • 北海涠洲岛旅游网站建设分析郑州网站技术顾问
  • html怎么做查询网站吗被忽悠去做网销了
  • 济南网站建设哪家公司好可以下载新闻视频的网站
  • 做网站公司需要多少钱怎么找当地的地推团队
  • wordpress搭的湖南优化公司