Visionpro工具二次开发 02

在本部分开始前建议先了解一下:CogImageFileTool读图-CSDN博客机器视觉技术与应用实战(Visionpro工具二次开发 01)_visionpro wpf-CSDN博客

因为本次将利用到这些东西。

首先:实现功能:CogImageFileTool读图到CogRecordDisplay,并且显示出来。

你需要在工具箱导入CogRecordDisplay,并且拖到界面里面。同时还要导入一个按钮(button)。

布局大概这样:

为了后面阅读方便,可以修改一下按钮属性(右键布局上的按钮点击“属性”就可以修改):

1、按钮的名字:

2、按钮在你的代码里面的类名:

开始编写代码:

 双击按钮其实就可以跳转到代码界面,当然你可以去找.cs后缀的文件打开。

要在解决方案里面引入Cognex.VisionPro.ImageFile。在“扩展”里面找Cognex.VisionPro.ImageFile

 废话不多说(c#代码):

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Cognex.VisionPro;
using Cognex.VisionPro.ImageFile;//这个需要引用

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        private CogImageFileTool picture;//定义一个CogImageFileTool变量
        public Form1()
        {
            InitializeComponent();
            picture = new CogImageFileTool();//实例化
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }
       //按钮点击后功能实现 
        private void DisplayImageButton_Click(object sender, EventArgs e)
        {
            picture.Operator.Open("C:\\Users\\12581\\Desktop\\1.jpg", CogImageFileModeConstants.Read);//读图
            picture.Run();
            cogRecordDisplay1.Image = picture.OutputImage;//显示出来
            cogRecordDisplay1.Fit(true);
        }
    }
}

效果如下:

功能比较简单,可以在这个基础上把连续读图的功能实现。

如果我想调用调用实时视频呢?

这里需要用到线程,一帧一帧获取图像。

线程,它来了!

由于要调用不同类型相机的配置文件,这里就跳过了。

核心代码(不同相机配置不同,读帧大体一致):

 private Thread ThreadObject;                //声明线程变量
ThreadObject = new Thread(new ThreadStart(ThreadFunction));// //线程对象实例化
//线程启动 
if (ThreadObject.ThreadState == System.Threading.ThreadState.Unstarted)
  {
  ThreadObject.Start();
  }
       //线程回调函数
        public void ThreadFunction()
        {
            int ImageWidth = 1280;
            int ImageHeight = 1024;
            CogImage8Grey Image = new CogImage8Grey();
            var cogRoot = new CogImage8Root();
            IntPtr ImageBufferPtr = Marshal.AllocHGlobal(ImageWidth * ImageHeight);
            byte[] ImageBuffer = new byte[ImageWidth * ImageHeight];
            while (!ThreadStop)
            {
                //采集单张图像
                SnapAcquisitionSoftTrigger(ref ImageBuffer);

                //将图像数据从托管区拷贝到非托管区
                Marshal.Copy(ImageBuffer, 0, ImageBufferPtr, ImageWidth * ImageHeight);

                //初始化
                cogRoot.Initialize(ImageWidth, ImageHeight, ImageBufferPtr, ImageWidth, null);

                //指定Image图像数据为cogRoot
                Image.SetRoot(cogRoot);

                //将图像数据传给cogRecordDisplay1控件
                cogRecordDisplay1.Image = Image as CogImage8Grey;

                //显示图像
                cogRecordDisplay1.Fit(true);

            }

  • 8
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: VisionPro是一款视觉系统开发平台,提供了丰富的工具和功能,用于图像处理和分析。VisionPro的二次开发是指在VisionPro的基础上进行个性化定制和扩展,以满足特定应用需求。 VisionPro的二次开发可以通过编写自定义的算法和脚本来实现。用户可以使用VisionPro提供的算法库和API,根据自己的需求进行算法的扩展和修改,以达到更好的图像处理效果。 此外,VisionPro还提供了友好的界面和工具,可以通过拖拽、配置等方式,快速定制图像处理的流程。用户可以根据自己的需求,选择合适的工具和参数配置,来完成特定的图像处理任务。 VisionPro的二次开发也涉及到与其他系统的集成。用户可以通过编写插件或接口,将VisionPro与其他设备或软件进行连接,实现数据的共享和交互。通过与其他系统的集成,可以扩展VisionPro的应用范围,提高系统的整体效能。 总之,VisionPro的二次开发是一项在原来基础上进行个性化定制和扩展的工作,通过算法的扩展、界面的定制以及与其他系统的集成,来实现更灵活、更高效的图像处理和分析功能。 ### 回答2: VisionPro是一款先进的机器视觉软件,广泛用于工业自动化领域。visionpro二次开发是指在VisionPro软件基础上进行二次开发,根据实际需求进行定制化的开发工作。 VisionPro二次开发的目的是为了满足特定的需求或解决特定的问题。通过二次开发,可以添加新的图像处理算法、优化现有的功能、增加用户界面、集成外部设备或应用程序等。这样可以提高VisionPro的适用性和灵活性,使其更好地适应各种不同的应用场景。 在进行VisionPro二次开发时,首先需要了解和熟悉VisionPro的基本功能和特性。然后根据需要,进行软件开发、算法设计、界面设计等工作。开发完成后,还需要进行测试和调试,确保开发的功能符合要求并且可以稳定运行。 VisionPro二次开发的好处是可以根据实际需求进行定制化开发,使其更好地适应特定的应用场景。这样可以提高生产效率、降低生产成本,并且提供更好的产品质量控制。此外,VisionPro二次开发还可以提供更多的功能和选择,提高系统的灵活性和扩展性。 总之,VisionPro二次开发是一项重要的工作,可以定制化开发机器视觉应用程序,提高生产效率和质量控制的能力。这需要专业的技术团队和广泛的行业经验,以确保开发的软件能够满足实际需求并可靠运行。 ### 回答3: VisionPro是一款强大的图像处理软件,可用于实现机器视觉应用。VisionPro的二次开发是指在基础软件上进行定制开发,以满足特定的应用需求。 VisionPro的二次开发可以通过以下几个步骤实施: 首先,需要对应用需求进行详细的调研和分析。了解客户的具体需求,明确所需实现的功能和目标。 其次,根据需求分析的结果,制定开发方案和计划。确定所需功能的开发方式和技术手段,以及开发的时间和资源投入。 接下来,进行软件定制开发。根据方案和计划,对VisionPro软件进行二次开发。根据具体的需求,可以通过编写脚本、开发插件或接口等方式,实现所需的功能扩展或定制。 在开发过程中,需要对功能进行测试和调试,确保软件的稳定性和可靠性。可以利用模拟数据或实际图像数据进行测试,对开发的功能进行验证和优化。 最后,进行部署和应用集成。将二次开发VisionPro应用集成到实际的生产环境中,与其他设备或系统进行连接和交互。并对系统进行使用培训,使用户能够熟练操作和维护该应用。 VisionPro二次开发的好处在于可以根据需求进行定制开发,满足特定的应用场景和功能要求。通过二次开发,可以扩展和增强VisionPro的功能,提高图像处理的精确度和效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值