摘要:通过人脸识别与管理系统界面的开发(WinForm界面增强,OpenCV-Python智能识别),我将以一个用户登录窗体的两种不同登录验证方式向各位同学介绍如何利用WinForm开发出漂亮的应用程序窗体,为我们后面的各个章节中的窗体开发打下基础。另外也会向各位同学介绍WinForrm窗体如何调用Python程序让OpenCV-Python程序嵌入到我们的登录窗体中,从而实现人脸识别的。博文提供了完整的Python代码和使用教程,适合新入门的朋友参考,完整代码资源文件请转至文末的下载链接。本博文目录如下:

本章节主要介绍的内容如下:

一,如何利用WinForm开发出非常漂亮的窗体应用程序

二,WinForm如何调用OpenCV-Python实现人脸扫描

三,如何让Python程序嵌入WinForm窗体并传参

四,源码分享,教学ppt分享

========================================================================

系列教程开发环境如下:

1,用户界面开发采用VS Professional 2013 (12.0.21005.1)

2,用户界面美化插件采用CSkin(16.1.143)

3,Python开发IDE采用 Pycharm(3.10)

4,人脸识别组件采用 opencv-python==4.5.4.60

5,人脸录入组件采用opencv-contrib-python==4.5.4.60

=========================================================================

一,如何利用WinForm开发出非常漂亮的窗体应用程序

1,打开VS创建一个  Windows窗体应用程序

2,应用第三方库CSkin

a,需要从以下官网获取动态库 CSkin - 官方网站 C#/.Net Winform界面库

b,项目中添加引用此dll库

c,FrmLogin窗体添加引用并修改窗体父类

d,修改此窗体属性,完成界面设计

窗体属性设置代码如下:

// // FrmLogin// this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(84)))), ((int)(((byte)(77)))), ((int)(((byte)(167)))));this.BackgroundImage = global::_01FaceDetection.Properties.Resources.back;this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;this.CancelButton = this.btn_Close;this.CanResize = false;this.CaptionFont = new System.Drawing.Font("Arial", 12F);this.CaptionHeight = 32;this.ClientSize = new System.Drawing.Size(961, 577);this.ControlBox = false;this.Controls.Add(this.spback01);this.Controls.Add(this.skinPanel1);this.Controls.Add(this.skinLabel2);this.Controls.Add(this.skinLabel1);this.EffectBack = System.Drawing.Color.Transparent;this.EffectCaption = CCWin.TitleType.Title;this.ForeColor = System.Drawing.Color.Black;this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));this.MaximizeBox = false;this.MinimizeBox = false;this.Name = "FrmLogin";this.Radius = 10;this.ShadowWidth = 10;this.ShowBorder = false;this.ShowDrawIcon = false;this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;this.Text = "";this.TitleCenter = true;this.TitleColor = System.Drawing.Color.FromArgb(((int)(((byte)(130)))), ((int)(((byte)(179)))), ((int)(((byte)(255)))));this.TitleOffset = new System.Drawing.Point(20, 0);this.Load += new System.EventHandler(this.FrmLogin_Load);this.SizeChanged += new System.EventHandler(this.FrmLogin_SizeChanged);this.skinPanel1.ResumeLayout(false);((System.ComponentModel.ISupportInitialize)(this.skinPictureBox1)).EndInit();this.spback01.ResumeLayout(false);this.spback02.ResumeLayout(false);this.skinTabControl1.ResumeLayout(false);this.skinTabPage1.ResumeLayout(false);this.skinPanel2.ResumeLayout(false);this.skinPanel2.PerformLayout();this.skinPanel3.ResumeLayout(false);this.sp_txtboxusername.ResumeLayout(false);this.skinTabPage2.ResumeLayout(false);this.ResumeLayout(false);this.PerformLayout();

二,WinForm如何调用OpenCV-Python实现人脸扫描

1,使用ProcessStartInfo调用本机Python.exe 执行OpenCV-Python实现人脸扫描

        /// <summary>/// py程序调用/// </summary>/// <param name="pathAlg">py文件路径</param>/// <param name="pytype">python方法名称</param>/// <param name="strjsons">参数信息</param>/// <returns></returns>public bool StartTest(string pathAlg, string pytype, string strjsons){bool state = true;if (!File.Exists(pathAlg)){throw new Exception("The file was not found.");return false;}string sArguments = pathAlg;//解析参数字符串获取参数;if (strjsons != "" || strjson != null){string[] argresult = strjsons.Split('|');for (int i = 0; i < argresult.Length; i++){sArguments += " " + argresult[i];//Python文件的路径用“/”划分比较常见}sArguments += " -u";//Python文件的路径用“/”划分比较常见}else{sArguments += "";}switch (pytype){case "getlocalImg":break;case "getlocalcarme": //读取本地摄像头break;}//sArguments += " " + fileimgpath + " " + userid + " " + username + " -u";//Python文件的路径用“/”划分比较常见ProcessStartInfo start = new ProcessStartInfo();start.FileName = @"python.exe";//环境路径需要配置好start.Arguments = sArguments;start.UseShellExecute = false;start.RedirectStandardOutput = true;start.RedirectStandardInput = true;start.RedirectStandardError = true;start.CreateNoWindow = true;using (progressTest = Process.Start(start)){// 异步获取命令行内容progressTest.BeginOutputReadLine();// 为异步获取订阅事件progressTest.OutputDataReceived += new DataReceivedEventHandler(outputDataReceived);}return state;}public void outputDataReceived(object sender, DataReceivedEventArgs e){if (!string.IsNullOrEmpty(e.Data)){this.Invoke(new Action(() =>{//this.txtadd_result.Text = e.Data;}));}}

三,如何让Python程序嵌入WinForm窗体并传参

1,先通过FindWindow查找Python窗体句柄,再通过SetParent将Python窗体嵌入到WinForm窗体中的Panle中。

                 //先启动第三方应用//开线程来查找窗体,不然UI线程会卡死Task.Run(() =>{//CheckFaceWindow是要查找的窗体名称,自行替换if (SetWindow.FindWindow("CheckFaceWindow")){this.Invoke(new Action(() =>{SetWindow.SetParent(sp_Face.Handle, "CheckFaceWindow");  //设置父容器}));}else{MessageBoxEx.Show("未能查找到人脸窗体!", "人脸检测", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);}});

四,源码分享,教学ppt分享

人脸识别与管理系统界面开发源码(WinForm界面增强,OpenCV-Python智能识别)(第一章)-Python文档类资源-CSDN下载

解压密码:luojiageo@1111

五,写在最后

你是不是总羡慕别人的幸福,却常常忽略了自己生活中的美好。其实,幸福的人并非拥有了世界上最好的东西,而是珍惜了生命中的点点滴滴。学会用感恩的心面对生活,你就可以体味到更多的幸福。

第二章,人脸识别与管理系统界面开发(WinForm界面增强,OpenCV-Python智能识别)相关推荐

  1. ASP.NET3.5 企业级项目开发 -- 第二章 数据访问层(DAL)的开发

    为什么80%的码农都做不了架构师?>>>    ASP.NET3.5 企业级项目开发 -- 第二章 数据访问层(DAL)的开发          前言:本篇主要讲述数据访问层的开发, ...

  2. Java swing 界面开发 - 登录界面- 2021-11-10

    Java swing 界面开发 - 登录界面 界面开发 包 包的概念 开发包 Java界面开发包 登录界面开发步骤 最简单的窗体 优化窗体内容 注意 优化响应内容 界面开发 包 包的概念 包的加入让类 ...

  3. JavaSwing 界面开发-登录界面

    目录 界面开发 Java 界面开发包介绍: javax.swing 包介绍: java.awt 包介绍: 一个基础界面开发框架搭建:熟悉创建类以及使用类创建对象,并且调用对象的方法 . 界面主体代码实 ...

  4. Dart/Flutter地址智能识别源码,类似顺丰填写地址的智能识别,识别率95%+

    smartParseAddress Dart/Flutter地址智能识别源码,类似顺丰填写地址的智能识别,识别率95%+ 站在巨人肩膀上,前排感谢:GitHub@wzc570738205 实际就是将地 ...

  5. 基于深度学习的中文车牌识别与管理系统(含UI界面,Python代码)

    摘要:本文详细介绍基于深度学习的中文车牌识别与管理系统,在介绍算法原理的同时,给出Python的实现代码以及PyQt的UI界面.在界面中既可以选择需要识别的车牌视频.图片文件.批量图片进行检测识别,也 ...

  6. python的gui界面文件管理_【Python】学生信息管理系统_开发(GUI界面)

    学生信息管理系统的开发 模块:  1. 系统登录界面   -->   logingui.py 2. 系统主界面     -->    maingui.py 3. 学生明细界面  --> ...

  7. JAVA修炼秘籍(番外篇)第二章:《图书馆管理系统》

    往期: JAVA 修炼秘籍第一章:<痛苦的折磨> JAVA 修炼秘籍第二章:<逐渐魔化> JAVA 修炼秘籍第三章:<绝地反击> JAVA 修炼秘籍第四章:< ...

  8. 【树莓派开发】02-基于OpenCV的车牌识别处理(LPR)

    [说明]:疫情期间比较闲学习了python.LPR这个东西,基于OpenCV已经做过很多遍了,通过这个小项目利用树莓派来熟悉Python编程,而且通过实际操作可以掌握一些具体的细节与技巧,这里我将整个 ...

  9. python智能识别的门禁系统_用PythonPi实现门禁系统-示例

    和分布式智能控制系统类似,首先实现了Python接口的API,基于图形界面的管理界面以后视情况提供. 先看示例的接线图: 这个示例是用树莓派的spi接口连接了一个rc522读卡器,以15号gpio口连 ...

最新文章

  1. 【重学Vue】数据响应原理真的是双向绑定吗?
  2. python3 下划线的5中含义
  3. python的windows出现问题_Windows下使用python库 curses遇到错误消息的解决方案
  4. 超级组合:用户中心+云平台
  5. 男人对待恋爱的不同阶段......
  6. 怎么画单极交流放大电路波形图_区别在哪?:VCC、VDD、VEE、VSS、数字地、模拟地、信号地、交流地、直流地!...
  7. js优化工具:ECMAScript Cruncher
  8. Kali Linux 网络扫描秘籍 第一章 起步(一)
  9. SpringBoot整合JdbcTemplate
  10. netty 入门(一)
  11. ipad中的active失效?
  12. java迭代法求圆周率用梯形_感悟数学“近似计算”之美——“望星楼”里的圆周率...
  13. matlab曲线导入cad,MATLAB导入CAD数据
  14. struts2 拦截器返回值问题
  15. java 1到n的质数_1到100的质数(java求100以内的素数)
  16. 大连海事计算机学硕分数线,大连海事大学2019年考研复试分数线预测
  17. kears编写CNN网络,实现对mnist的识别
  18. 立创商城PCB库下载(SVN更新)
  19. 拆 米家台灯_米家台灯1S及米家充电台灯测评报告
  20. 计算机原理学习笔记——第一章 计算机的抽象和技术——2 程序的表象之下

热门文章

  1. EXCEL转换成十六进制加0x补零
  2. 数据结构常用的七种排序算法总结
  3. 解决多个数独重叠联系
  4. dfs python
  5. 小程序地图标记点自定义标签的实现
  6. WPF 基本控件的介绍
  7. 使用ant直接执行shell命令
  8. 创业圈的钱都去哪儿了?AI算法正帮Facebook成为大赢家
  9. 解决NameError: name ‘xxx‘ is not defined
  10. 关于中国新能源发展最近趋势的深度分析!政府和科技巨头抓住了历史拐点