视觉软件界面在C# 显示 及操作
在C# 中创建视觉软件界面通常使用 Windows Forms 或 WPF 框架。以下是核心步骤和代码示例:
?️ 一、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; // 显示图像
}
}
? 四、开发建议
- 图像处理库:使用
EmguCV(OpenCV 的 .NET 封装)进行高级视觉处理// 示例:使用 EmguCV 读取图像 using Emgu.CV; Mat image = CvInvoke.Imread("path/to/image.jpg"); - 性能优化:
- 大图像用
Bitmap.LockBits直接操作内存 - 耗时操作用
BackgroundWorker防止界面卡顿
- 大图像用
- 控件推荐:
TrackBar- 调整参数阈值PropertyGrid- 动态显示对象属性TabControl- 多功能分页
通过上述方法即可构建功能完整的视觉软件界面,满足图像显示、处理和交互需求。实际开发中可结合具体需求选择 WinForms 或 WPF。
C#+WPF+Opencv模块化开发视觉对位运动控制系统
多样化的工业场景。 综上所述,C# WPF结合OpenCV的模块化架构,并非简单的技术堆砌,而是对工业视觉系统稳定性、实时性与可维护性的深度重构。它以硬件加速的
喜科堂C#上位机.NET教学视频
.NET 生态的强力支撑,成为了工业上位机开发的首选语言。相比于传统的组态软件,C# 开发的上位机具有极高的自定义程度,界面可以做得更加炫酷美
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
HALCON机器视觉软件有哪些优点?
最近一直在使用机器人与上位机进行视觉抓取技术的调试,对C# 也稍有了解,就这样我开始接触到了HALCON. HALCON是德国MVtec公司开发
2021-08-25 16:03:34
2021年LabVIEW/PLC工程师福利来啦!!!每天1小时,手把手教您轻松掌握C#(Winform)软件设计
编程语言,不但可以拓展自己的视野,改变看待问题的角度,最重要的是它可以使你迅速和和同行拉开差距,快速脱颖而出!随着智能制造的发展,C#在工业领域的应用越来越广泛,各种运动控制板卡的大量使用、机器
英创信息技术WinCE平台C#例程要点介绍
英创嵌入式ARM9主板采用微软的Windows CE操作系统,可以采用eVC或者VS2005进行应用开发。C#作为一种简单易用的编程语言工具,由于其在
2019-11-15 10:01:15
C#制作安装和部署实现软件开机启动具体操作办法
C#制作“安装和部署”时,实现软件开机启动 使用VS自带的安装模块可以方便的对项目进行打包,如果仔细观察的话,我们可以发现,VS制作安装包是可以操作
换一换
- 如何分清usb-c和type-c的区别
- 中国芯片现状怎样?芯片发展分析
- vga接口接线图及vga接口定义
- 芯片的工作原理是什么?
- 华为harmonyos是什么意思,看懂鸿蒙OS系统!
- 什么是蓝牙?它的主要作用是什么?
- ssd是什么意思
- 汽车电子包含哪些领域?
- TWS蓝牙耳机是什么意思?你真的了解吗
- 什么是单片机?有什么用?
- 升压电路图汇总解析
- plc的工作原理是什么?
- 再次免费公开一肖一吗
- 充电桩一般是如何收费的?有哪些收费标准?
- ADC是什么?高精度ADC是什么意思?
- dtmb信号覆盖城市查询
- EDA是什么?有什么作用?
- 中科院研发成功2nm光刻机
- 苹果手机哪几个支持无线充电的?
- type-c四根线接法图解
- 华为芯片为什么受制于美国?
- 怎样挑选路由器?
- 元宇宙概念股龙头一览
- 锂电池和铅酸电池哪个好?
- 如何进行编码器的正确接线?接线方法介绍
- 什么是场效应管?它的作用是什么?
- 虚短与虚断的概念介绍及区别
- 晶振的作用是什么?
- 大疆无人机的价格贵吗?大约在什么价位?
- amoled屏幕和oled区别
- 苹果nfc功能怎么复制门禁卡
- 单片机和嵌入式的区别是什么
- 复位电路的原理及作用
- BLDC电机技术分析
- dsp是什么意思?有什么作用?
- 苹果无线充电器怎么使用?
- iphone13promax电池容量是多少毫安
- 芯片的组成材料有什么
- 特斯拉充电桩充电是如何收费的?收费标准是什么?
- 直流电机驱动电路及原理图
- 传感器常见类型有哪些?
- 自举电路图
- 苹果笔记本macbookpro18款与19款区别
- 通讯隔离作用
- 新斯的指纹芯片供哪些客户
- 伺服电机是如何进行工作的?它的原理是什么?
- 无人机价钱多少?为什么说无人机烧钱?
- 以太网VPN技术概述
- 手机nfc功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机