C#+VisionPro单一模板测量多个目标获取结果

复制代码
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 Cognex.VisionPro;
using Cognex.VisionPro.Blob;
using Cognex.VisionPro.Caliper;
using Cognex.VisionPro.ImageProcessing;
using Cognex.VisionPro.Interop;
using Cognex.VisionPro.PMAlign;
using Cognex.VisionPro.QuickBuild;
using Cognex.VisionPro.ToolGroup;
using Cognex.VisionPro.ToolBlock;
using CogGraphicLabel = Cognex.VisionPro.CogGraphicLabel;
using Cognex.VisionPro.ImageFile;

namespace VPPDemo2
{
    public partial class Form1 : Form
    {
        private string VppPath = @"C:\Users\Administrator\Desktop\QuickBuild1.vpp";
        private CogJobManager myjobmanger;

        public Form1()
        {
            InitializeComponent();
        }

        /// <summary>
        /// 加载VPP
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button1_Click(object sender, EventArgs e)
        {
            myjobmanger = (CogJobManager)CogSerializer.LoadObjectFromFile(VppPath);
            MessageBox.Show("加载VPP成功.");
        }

        /// <summary>
        /// 运行
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button2_Click(object sender, EventArgs e)
        {
            CogToolGroup mygroup = myjobmanger.Job(0).VisionTool as CogToolGroup;
            CogImageConvertTool imagecover = mygroup.Tools["CogImageConvertTool1"] as CogImageConvertTool;
            CogPMAlignTool mypma = mygroup.Tools["CogPMAlignTool1"] as CogPMAlignTool;
            CogToolBlock myblock = mygroup.Tools["CogToolBlock1"] as CogToolBlock;
            //创建一个图片工具对象读取本地测试图片
            CogImageFileTool mIamgeFileTool = new CogImageFileTool();
            mIamgeFileTool.Operator.Open(@"C:\Users\Administrator\Desktop\无标题.png", CogImageFileModeConstants.Read);
            mIamgeFileTool.Run();
            //将读取过来的图片传给图片转换工具转成8位灰度图
            imagecover.InputImage = mIamgeFileTool.OutputImage;
            imagecover.Run();
            mypma.InputImage = imagecover.OutputImage;
            //运行匹配模板
            mypma.Run();
            //将转换为8位灰度图的图片传给toolBlock
            myblock.Inputs[0].Value = imagecover.OutputImage;
            //如果找到了测量的目标
            if (mypma.Results.Count > 0)
            {
                //遍历特征,传递给toolblock进行测量
                for (int i = 0; i < mypma.Results.Count; i++)
                {
                    myblock.Inputs[1].Value = mypma.Results[i].GetPose();
                    myblock.Run();
                    //取得测量值
                    Console.WriteLine($"{myblock.Outputs[0].Value.ToString()}");
                }
                cogRecordDisplay1.Record = myblock.CreateLastRunRecord().SubRecords[0];
            }
            MessageBox.Show("运行成功.");
        }

        /// <summary>
        /// 获取结果
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button3_Click(object sender, EventArgs e)
        {
            //创建文本
            CogGraphicLabel ResultLabel = new CogGraphicLabel();//创建标签对象
            ResultLabel.X = 10;
            ResultLabel.Y = -50;
            ResultLabel.Text = "Label Test,添加文本测试";
            ResultLabel.Color = Cognex.VisionPro.CogColorConstants.Red;
            ResultLabel.Font = new Font("arial",8);
        }
    }
}
复制代码

 

posted @   金雨CHN  阅读(200)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示