登录/注册

视觉软件界面在C# 显示 及操作

更多

在C# 中创建视觉软件界面通常使用 Windows FormsWPF 框架。以下是核心步骤和代码示例:


?️ 一、Windows Forms 基础示例(显示与操作图像)

1. 创建窗体并添加控件

using System;
using System.Drawing;
using System.Windows.Forms;

public class VisionApp : Form
{
    private PictureBox pictureBox = new PictureBox();
    private Button openButton = new Button();

    public VisionApp()
    {
        // 设置窗体属性
        this.Text = "视觉软件界面";
        this.Size = new Size(800, 600);

        // 配置按钮
        openButton.Text = "打开图像";
        openButton.Location = new Point(20, 20);
        openButton.Click += OpenButton_Click; // 绑定事件

        // 配置图片框
        pictureBox.Location = new Point(50, 100);
        pictureBox.Size = new Size(600, 400);
        pictureBox.BorderStyle = BorderStyle.FixedSingle;
        pictureBox.SizeMode = PictureBoxSizeMode.Zoom; // 自适应缩放

        // 添加控件到窗体
        this.Controls.Add(openButton);
        this.Controls.Add(pictureBox);
    }

    private void OpenButton_Click(object sender, EventArgs e)
    {
        OpenFileDialog dialog = new OpenFileDialog();
        dialog.Filter = "图像文件|*.jpg;*.png;*.bmp";

        if (dialog.ShowDialog() == DialogResult.OK)
        {
            // 加载并显示图像
            pictureBox.Image = Image.FromFile(dialog.FileName);
        }
    }

    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.Run(new VisionApp());
    }
}

? 二、关键功能扩展

1. 图像处理(以灰度化为例)

在按钮事件中添加处理逻辑:

private void ProcessImage()
{
    if (pictureBox.Image == null) return;

    Bitmap original = new Bitmap(pictureBox.Image);
    Bitmap processed = new Bitmap(original.Width, original.Height);

    for (int y = 0; y < original.Height; y++)
    {
        for (int x = 0; x < original.Width; x++)
        {
            Color pixel = original.GetPixel(x, y);
            int gray = (int)(pixel.R * 0.3 + pixel.G * 0.59 + pixel.B * 0.11);
            processed.SetPixel(x, y, Color.FromArgb(gray, gray, gray));
        }
    }

    pictureBox.Image = processed; // 显示处理后的图像
}

2. 添加鼠标交互(获取像素坐标)

public VisionApp()
{
    pictureBox.MouseClick += (s, e) => 
    {
        if (e.Button == MouseButtons.Left)
        {
            MessageBox.Show($"点击位置: ({e.X}, {e.Y})");
        }
    };
}

⚡ 三、升级到 WPF(现代化界面)

若需更高级效果,推荐使用 WPF:

<!-- MainWindow.xaml -->
<Window x:Class="VisionApp.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        Title="视觉软件" Width="800" Height="600">
    <Grid>
        <Button Content="打开图像" Click="OpenImage_Click" Margin="10" HorizontalAlignment="Left"/>
        <Image x:Name="imgDisplay" Stretch="Uniform" Margin="50,60,50,50"/>
    </Grid>
</Window>
// MainWindow.xaml.cs
private void OpenImage_Click(object sender, RoutedEventArgs e)
{
    OpenFileDialog dialog = new OpenFileDialog();
    dialog.Filter = "图片文件|*.jpg;*.png;*.bmp";

    if (dialog.ShowDialog() == true)
    {
        BitmapImage bitmap = new BitmapImage(new Uri(dialog.FileName));
        imgDisplay.Source = bitmap; // 显示图像
    }
}

? 四、开发建议

  1. 图像处理库:使用 EmguCV(OpenCV 的 .NET 封装)进行高级视觉处理
    // 示例:使用 EmguCV 读取图像
    using Emgu.CV;
    Mat image = CvInvoke.Imread("path/to/image.jpg");
  2. 性能优化
    • 大图像用 Bitmap.LockBits 直接操作内存
    • 耗时操作用 BackgroundWorker 防止界面卡顿
  3. 控件推荐
    • TrackBar - 调整参数阈值
    • PropertyGrid - 动态显示对象属性
    • TabControl - 多功能分页

通过上述方法即可构建功能完整的视觉软件界面,满足图像显示、处理和交互需求。实际开发中可结合具体需求选择 WinForms 或 WPF。

C#+WPF+Opencv模块化开发视觉对位运动控制系统

多样化的工业场景。 综上所述,C# WPF结合OpenCV的模块化架构,并非简单的技术堆砌,而是对工业视觉系统稳定性、实时性与可维护性的深度重构。它以硬件加速的

2026-07-20 14:06:12

喜科堂C#上位机.NET教学视频

.NET 生态的强力支撑,成为了工业上位机开发的首选语言。相比于传统的组态软件,C# 开发的上位机具有极高的自定义程度,界面可以做得更加炫酷美

2026-07-06 11:51:21

AI智能体开发C#软件的临时方案

AI智能体 (Agent) 可以帮你生成完整的C# 工程,包括主体代码、WinForm界面设计和引用添加。但是目前Visual Studio (VS) 的Agent功能好像还不太完善,时常出一些奇怪

2025-12-30 10:50:59

C#和西门子PLC使用Udp通信

目录 一、PLC程序工程创建 1、硬件配置 2、程序编程 3、添加监控表 二、C#程序工程创建 1、界面UI 2、代码编写 (1)创建本地Udp (2)读PLC的线程函数 (3)定时器 (4)上位机

资料下载 王浩 2023-04-17 14:45:05

C#线程参考手册

写C#上位机,使用异步方式,防止阻塞导致界面卡顿

资料下载 黄海 2022-03-25 15:09:38

LABVIEW调用C# DLL的实例分享

LABVIEW调用C# DLL的实例分享

资料下载 渝百一 2022-01-04 11:20:30

C#语言程序设计实用教程

C#语言程序设计实用教程免费下载。

资料下载 姚小熊27 2021-05-24 16:17:13

基于C#的密尔计算机工具MilCalc

基于C#的密尔计算机工具MilCalc

资料下载 熊猫 2021-03-10 09:31:57

C#上位机是为了取代组态软件

首先我认为,C#上位机并不是为了取代组态软件,而是对组态软件的补充,C#

2023-02-22 15:47:20

UTP系统—界面测试介绍(一)

UTP系统支持对桌面软件进行自动化测试方案提供,支持对被测软件进行性能测试和回归自动化测试。UTP系统支持对各种语言如C#,

2022-09-02 10:22:29

HALCON机器视觉软件有哪些优点?

最近一直在使用机器人与上位机进行视觉抓取技术的调试,对C# 也稍有了解,就这样我开始接触到了HALCON. HALCON是德国MVtec公司开发

2021-08-25 16:03:34

2021年LabVIEW/PLC工程师福利来啦!!!每天1小时,手把手教您轻松掌握C#(Winform)软件设计

编程语言,不但可以拓展自己的视野,改变看待问题的角度,最重要的是它可以使你迅速和和同行拉开差距,快速脱颖而出!随着智能制造的发展,C#在工业领域的应用越来越广泛,各种运动控制板卡的大量使用、机器

2021-02-22 07:30:54

如何掌握labview通用视觉软件的快速即用

、手把手教您设计出自己耳目一新的视觉通用软件框架与界面。2、梳理整体框架的思想3、分享

2020-04-24 19:03:59

英创信息技术WinCE平台C#例程要点介绍

英创嵌入式ARM9主板采用微软的Windows CE操作系统,可以采用eVC或者VS2005进行应用开发。C#作为一种简单易用的编程语言工具,由于其在

2019-11-15 10:01:15

C#制作安装和部署实现软件开机启动具体操作办法

C#制作“安装和部署”时,实现软件开机启动 使用VS自带的安装模块可以方便的对项目进行打包,如果仔细观察的话,我们可以发现,VS制作安装包是可以操作

2019-07-23 07:09:11
7天热门专题 换一换
相关标签