C# WPF上位机开发(简易图像处理软件)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        图像处理是工业生产重要的环节。不管是定位、测量、检测还是识别,图像处理在工业生产中扮演重要的角色。而c#由于自身快速开发的特点,十分适合用来进行图像处理开发。目前来说,如果大家对opencv比较熟悉,可以借助于c# + opencv来进行图像处理。如果只是纯应用的话,用c# + halcon对图像进行处理,也是可以的。

        当然,除了图像之外,还要注意光源和镜头,这部分可以在实际遇到具体问题的时候再处理。今天可以先打一个基础,有一个基本的印象。本次使用到的库是opencv的c#库,版本是OpenCvSharp3-AnyCPU,这个需要注意下。

1、下载lena标准图片

        学习数字图像处理的同学都知道,lena标准图片是我们学习的重要参考资料。

2、安装OpenCvSharp3-AnyCPU库

        下载的方法也是很简单,直接打开NuGet工具包,输入OpenCvSharp3-AnyCPU即可,直接单击下载,

3、界面设计

        界面设计也不复杂。目前只是为了demo演示使用,整个demo分成了两个部分,左边是按钮,右边是图像显示。而右侧图像显示的部分又分成了处理后的图像、原图像两个子区域部分。

        关于功能部分的按钮,这里只是添加了一个灰化的按钮,有需要进一步拓展的同学,可以继续去增加别的按钮,丰富软件的功能,增加一下软件的实用性。

        它的xaml部分代码是这样的,

<Window x:Class="WpfApp.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:local="clr-namespace:WpfApp"mc:Ignorable="d"Title="MainWindow" Height="550" Width="1000"><Grid><DockPanel><StackPanel Width="130" DockPanel.Dock="Left" Margin="10"><Button Name="btnChange2"  Content="图片灰显"  Click="BtnChange2_Click" Margin="0,5,0,0"></Button></StackPanel><DockPanel VerticalAlignment="Top" Margin="10,10,10,10"><Image DockPanel.Dock="Right" Name="imgOrignal" Source="C:\Users\feixiaoxing\Desktop\WpfApp\WpfApp\bin\Debug\test.png" Stretch="UniformToFill" Width="400" ></Image><Image Name="imgOutput" Source="C:\Users\feixiaoxing\Desktop\WpfApp\WpfApp\bin\Debug\test.png" Stretch="UniformToFill" Width="400"></Image></DockPanel></DockPanel></Grid>
</Window>

4、代码设计和验证

        代码设计也比较简单,主要就是编写BtnChange2_Click这个回调函数。此外,由于Mat生成的时候,可以直接创建灰度图,所以代码其实不算复杂,大家掌握这个流程逻辑就可以了。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Interop;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;using OpenCvSharp;
using OpenCvSharp.Extensions;
using System.Drawing;namespace WpfApp
{/// <summary>/// MainWindow.xaml 的交互逻辑/// </summary>public partial class MainWindow : System.Windows.Window{public MainWindow(){InitializeComponent();}private void BtnChange2_Click(object sender, RoutedEventArgs e){using (var src = new Mat(@"C:\Users\feixiaoxing\Desktop\WpfApp\WpfApp\bin\Debug\test.png", ImreadModes.Grayscale)){var mem = src.ToMemoryStream();BitmapImage bmp = new BitmapImage();bmp.BeginInit();bmp.StreamSource = mem;bmp.EndInit();imgOutput.Source = bmp;}}}
}

        代码编写无误后,没有错误的话,就可以直接打开运行。打开之后,单击左边的按钮,我们一会就可以看到一张灰度图和一张彩色图了,这说明整个代码编写应该是没有问题的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/215687.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python网络爬虫环境的安装指南

网络爬虫是一种自动化的网页数据抓取技术&#xff0c;广泛用于数据挖掘、信息搜集和互联网研究等领域。Python作为一种强大的编程语言&#xff0c;拥有丰富的库支持网络爬虫的开发。本文将为你详细介绍如何在你的计算机上安装Python网络爬虫环境。 一、安装python开发环境 进…

SCUM私人服务器搭建部署教程

以下是搭建SCUM私服的步骤&#xff1a; 1. 下载并安装SteamCMD。SteamCMD是一个命令行工具&#xff0c;用于从Steam下载和更新游戏服务器。你可以从Steam官网下载并安装它。 2. 创建一个文件夹来存储服务器文件。在你的计算机上创建一个文件夹&#xff0c;用于存储SCUM服务器文…

JavaWeb(十二)

一、Filter概述 Filter 表示过滤器&#xff0c;是 JavaWeb 三大组件(Servlet、Filter、Listener)之一。 过滤器可以把对资源的请求拦截下来&#xff0c;从而实现一些特殊的功能。 如下图所示&#xff0c;浏览器可以访问服务器上的所有的资源&#xff08;servlet、jsp、html等…

【玩转TableAgent数据智能分析】TableAgent全功能详解及多领域数据分析实践(中)不同领域数据分析实践

3 电影点评数据分析实践 利用本身自带的电影点评数据&#xff0c;来具体看一下TableAgent的分析能力&#xff0c;选择电影点评数据&#xff0c;智能体会自动导入该数据DMSC20000.csv&#xff0c;大小为3.3 MB。在数据信息展示区&#xff0c;就会显示出该数据&#xff0c;并提供…

C++STL的vector模拟实现

文章目录 前言成员变量成员函数构造函数push_backpop_backinserterase析构函数拷贝构造 前言 成员变量 namespace but {template<class T>class vector{public:typedef T* iterator;private:iterator _start;iterator _finish;iterator _end_of_storage;}; }我们之前实…

网易有道强力开源中英双语语音克隆

项目地址&#xff08;基于PromptTTS&#xff09;&#xff1a; https://github.com/netease-youdao/EmotiVoice EmotiVoice Docker镜像 尝试EmotiVoice最简单的方法是运行docker镜像。你需要一台带有NVidia GPU的机器。先按照Linux和Windows WSL2平台的说明安装NVidia容器工具…

线上盲盒小程序,开启互联网盲盒时代

近年来&#xff0c;盲盒经济在国内非常火爆&#xff0c;各类盲盒品牌层出不穷&#xff0c;深受国内外年轻人、消费者的喜爱。 目前&#xff0c;根据数据显示&#xff0c;盲盒市场不仅在线下异常火热&#xff0c;线上盲盒也是成为了大众的新选择。各类电商平台中盲盒的成交额更…

使用node实现链接数据库并对数据库进行增删改查的后端接口

环境 node npm 编辑器 vscode 项目配置 新建目录 用vscode打开 终端输入 npm init -y npm install mysql npm install express 代码 安装好之后的代码页面 新建 在根目录新建api.js文件 const express require(express); const db require(./db/index); const app…

计算机考研408-计算机网络、操作系统整书知识点脑图

计算机网络、操作系统整书知识点脑图 今天突然想起来考研期间为了方便记忆&#xff0c;费了很大力气整理了计算机网络、操作系统两本书知识点的脑图&#xff0c;想着放着也没啥用&#xff0c;分享出来给大家看看 但是思维导图格式的东西好像没法直接发成文章&#xff0c;上传…

使用Windows10的OneDrive应用程序,让文件管理上一个台阶

这篇文章解释了如何通过在文件资源管理器和OneDrive应用程序之间轮换&#xff0c;将OneDrive与Windows 10一起使用。 使用文件资源管理器进行组织 你不必将所有OneDrive文件都保存在硬盘上&#xff0c;事实上&#xff0c;你可以将任意数量的文件留在云中&#xff08;也就是微…

SpringBoot-Swagger3

SpringBoot——2.7.3版本整合Swagger3-CSDN博客文章浏览阅读5.4k次&#xff0c;点赞6次&#xff0c;收藏17次。Swagger2&#xff08;基于openApi3&#xff09;已经在17年停止维护了&#xff0c;取而代之的是 sagger3&#xff08;基于openApi3&#xff09;&#xff0c;而国内几乎…

C++STL之List的实现

首先我们要实现List的STL,我们首先要学会双向带头链表的数据结构。那么第一步肯定是要构建我们的节点的数据结构。 首先要有数据域&#xff0c;前后指针域即可。 再通过模板类进行模板化。 然后再写List的构造函数&#xff0c;这个地方用T&,通过引用就可以减少一次形参拷…

机械中常用的一些术语

目录 一、OEMSOP:SOP编写指南 WI(标准作业指导书):标准作业程序 &#xff08;SOP&#xff09;:SOP和WI的区别&#xff1a;一、PFC、FMEA、PCP、WIPPAP、PSW&#xff1a;APQP&#xff1a;BOM&#xff08;Bill of Material&#xff09;物料清单DV&#xff08;设计验证&#xff09…

我的创作三周年纪念日

今天收到CSDN官方的来信&#xff0c;创作三周纪念日到了。 Dear: Hann Yang &#xff0c;有幸再次遇见你&#xff1a; 还记得 2020 年 12 月 12 日吗&#xff1f; 你撰写了第 1 篇技术博客&#xff1a; 《vba程序用7重循环来计算24》 在这平凡的一天&#xff0c;你赋予了它…

智能建筑市场调研:预计2028年将达到10736亿元

我国智能建筑起源于20世纪90年代&#xff0c;在我国发展了二十年&#xff0c;行业经历了初创期、规范期、发展期三个阶段&#xff0c;已经形成了产业规模及产业链&#xff0c;智能建筑工程已经普及到了各种类型建筑并延伸到了城市建设及相关行业。地域上&#xff0c;智能建筑由…

LeetCode(55)环形链表【链表】【简单】

目录 1.题目2.答案3.提交结果截图 链接&#xff1a; 环形链表 1.题目 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评…

100V降压5V芯片

高效能100V降压5V芯片&#xff1a;9V至100V输入电压范围&#xff0c;适用于各类应用 在当今的电子设备中&#xff0c;电源管理起着至关重要的作用。一款高效、稳定、可靠的电源芯片&#xff0c;是保证设备正常运行的关键。今天&#xff0c;我们为大家介绍一款性能卓越的100V降…

d2l绘图不显示的问题

之前试了各种方法都不行 在pycharm中还是不行&#xff0c;但是在anaconda中的命令行是可以的 anaconda prompt conda activaye py39 #进入f盘 F: #运行文件 python F:\python_code\softmax.py

Python数据科学视频讲解: 基本输出函数 print( )函数

2.4 基本输出函数&#xff1a;print()函数 视频为《Python数据科学应用从入门到精通》张甜 杨维忠 清华大学出版社一书的随书赠送视频讲解2.4节内容。本书已正式出版上市&#xff0c;当当、京东、淘宝等平台热销中&#xff0c;搜索书名即可。内容涵盖数据科学应用的全流程&…

视频汇聚/音视频流媒体视频平台/视频监控EasyCVR分享页面无法播放,该如何解决?

国标GB28181安防视频监控/视频集中存储/云存储EasyCVR平台可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。平台既具备传统…