通过Cognex Display工具栏,您可以在Cognex Display控件中操作图像,而Cognex Display状态栏将显示有关该图像的信息。下图显示了Cognex Display控件以及工具栏和状态栏:
要将工具栏和状态栏添加到Visual Studio.NET应用程序,请执行以下步骤:
-
选择“项目”->“添加引用”,然后添加对程序集Cognex.VisionPro.Controls的引用,该程序集包含工具栏和状态栏的对象和实例。
-
将显示控件CogDisplay添加到Windows窗体中,如下图所示:
- 切换到Visual Studio.NET工具箱的VisionPro系统控制选项卡,然后选择CogDisplayToolbarV2,将CogDisplayToolbarV2控件添加到Windows窗体中
,如下图所示:
- 指针(用于选择和移动图形)
- 平移光标(用于平移图像)
- 放大光标(单击可放大)
- 缩小光标(单击可缩小)
- 使图像适合显示(根据需要平移和缩放)
- 将图像缩放到100%(每个图像像素1个显示像素)
- 像素网格线(放大时显示)
- 子像素网格线(放大时显示)
- (可选)您可以选择将工具栏停靠在Windows窗体的顶部
注意:如果您的表单使用ToolStrips而不是工具栏,或者要将控件添加到现有工具栏,请使用CogDisplayToolStrip而不是工具栏控件
- 将工具栏连接到Cognex Display控件,如下面的C#示例所示,其中工具栏变量为cogDisplayToolbarV21,Display控件变量为cogDisplay1。
cogDisplayToolbarV21.Display = cogDisplay1;
-
从Visual Studio.NET工具箱中选择CogDisplayStatusBarV2
-
将CogDisplayStatusBarV2添加到Windows窗体中
- 选择要显示的空间
- 光标指针的坐标(在选定空间中)
- 用于显示空间的弹出式菜单
- 当前缩放系数
- 光标指针上的像素值
-
(可选)您可以选择将状态栏停靠在Windows窗体的底部
-
如以下C#示例所示,将状态栏连接到Cognex Display控件,其中状态栏变量为cogDisplayStatusBarV21,而Display控件变量为cogDisplay1。
cogDisplayStatusBarV21.Display = cogDisplay1;
工具栏和状态栏现在将与CogDisplay控件一起使用。
- 完整示例如下:
using Cognex.VisionPro.ImageFile;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Reflection;
using System.Reflection.Emit;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace UsingQB
{
public partial class Form7 : Form
{
CogImageFile ImageFile;
int counter;
int maxImages;
public Form7()
{
InitializeComponent();
InitializeDisplay();
}
/// <summary>
/// 初始化显示相关的控件,使得工具栏和状态栏可以与 cogDisplay1 进行交互。
/// 这通常是在应用程序启动时或窗体加载时调用,以确保用户界面中的各个部分能够正确地显示和控制图像的显示
/// </summary>
private void InitializeDisplay() {
cogDisplayToolbarV21.Display = cogDisplay1;
cogDisplayStatusBarV21.Display = cogDisplay1;
}
private void InitializeFifo()
{
ImageFile = new CogImageFile();
ImageFile.Open(textBoxFilePath.Text, CogImageFileModeConstants.Read);
counter = 0;
maxImages = ImageFile.Count;
}
private void button2_Click(object sender, EventArgs e)
{
using (OpenFileDialog fileDialog = new OpenFileDialog())
{
if (fileDialog.ShowDialog() == DialogResult.OK)
{
textBoxFilePath.Text = fileDialog.FileName;
}
}
InitializeFifo();
}
private void button1_Click(object sender, EventArgs e)
{
if (ImageFile == null)
{
MessageBox.Show("没有输入图像!");
}
if (counter == maxImages)
{
counter = 0;
}
cogDisplay1.Image = ImageFile[counter];
counter = counter + 1;
label1.Text = $"第{counter}/{maxImages}张";
}
}
}
标签:控件,工具栏,状态栏,System,二次开发,using,Display
From: https://blog.csdn.net/qq_44082700/article/details/140984455