当前位置: 首页 > news >正文

OpenCV + WinFrom连接手机摄像头

帮我节省1000元购买海康卫视的工业相机....

首先分别下载Iriun PC端和手机app端 手机app下载可以自行搜索 Iriun Webcam

1.自行测试

手机wifi和电脑wifi需要在同一个路由器网段

2.新建C# WinForm项目

1.右键项目名->管理NuGet程序包(N)....

OpenCVSharp4

OpenCVSharp4.Runtime.win

OpenCVSharp4.Extensions

2.添加引用

using OpenCvSharp; using OpenCvSharp.Extensions; using System.Drawing; using System.Drawing.Imaging; using System.Numerics; using System.Windows.Forms;

3.在From设计界面添加5个控件

PictureBox Button打开视频 Button保存图片 label Timer

PictureBox 显示模式:CenterImage

Timer 时间Interval 设置为1000ms

4.完整代码

using OpenCvSharp; using OpenCvSharp.Extensions; using System.Drawing; using System.Drawing.Imaging; using System.Numerics; using System.Windows.Forms; namespace WinFormsApp2 { public partial class Form1 : Form { VideoCapture capture; bool IsSave = false; public Form1() { InitializeComponent(); //关闭Windows Forms控件之间的跨线程调用检查 Control.CheckForIllegalCrossThreadCalls = false; timer1.Start();//打开计时器,显示当前时间 } private void Form1_Load(object sender, EventArgs e) { } private void button1_Click(object sender, EventArgs e) { capture = new VideoCapture(2);//0、1本地摄像头 2手机摄像头 if (!capture.IsOpened()) { MessageBox.Show("无法打开摄像头"); return; } Thread video_th = new Thread(StartCapturing); video_th.IsBackground = true; video_th.Start(); } private void StartCapturing() { Mat frame = new Mat(); while (true) { capture.Read(frame);//读取视频流 //对帧图像进行处理 //将帧图像转换为Bitmap,然后在PictureBox显示 Bitmap bitmap = BitmapConverter.ToBitmap(frame); if (IsSave) { bitmap.Save(DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss_fff")+".jpg",ImageFormat.Jpeg); IsSave = false; } pictureBox1.Image = bitmap; pictureBox1.Refresh(); } } private void timer1_Tick(object sender, EventArgs e) { label1.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ff");//显示当前时间 } private void button2_Click(object sender, EventArgs e) { IsSave = true;//保存图片 } } }

通过网盘分享的文件:IriunWebcam-2.9.1.exe 链接: 百度网盘 请输入提取码 提取码: vtkt

http://www.cnnetsun.cn/news/3501759.html

相关文章:

  • ARM嵌入式开发实战:从架构基础到RTOS应用完整指南
  • Muse Spark 1.1:AI驱动的智能代码补全与文档生成实战指南
  • 商业分析自动化系统:从数据采集到报告生成的全流程实践
  • 计算机组成原理与硬件系统详解
  • C++实现课堂幸运转盘点名系统:随机算法与STL实战
  • 15个微行动策略:技术人职业发展的实战指南
  • 鸿蒙 ArkTS 实战:Offline Survival Pack 从效率工具到状态管理完整解析
  • 从想法到金奖:我是如何用百宝箱开发AI眼镜社交记忆助手的 | GPASS开发者大赛赛道四金奖复盘
  • Minecraft模组分层指南:从基础优化到自动化工程
  • 嵌入式SDRAM控制器核心机制:数据解复用、字节序与低功耗管理
  • 苏州GEO服务商五强出炉|2026年7月全栈技术落地实力深度解析
  • 贪心算法解决Karate Competition选手匹配问题
  • 知识工作评估:超越正确率的多维绩效衡量体系
  • Spring框架演进史与企业级应用实践
  • SpringMVC数据传递机制与实战技巧
  • 深入解析MIPI DSI协议:从数据包到功耗管理的嵌入式显示接口实战
  • AM62L ePWM与eQEP寄存器深度解析:从底层驱动到电机控制实战
  • Android控件体系与自定义View开发指南
  • Linux平台设备驱动开发与优化实践
  • Android开发从入门到精通:核心技术栈与实战指南
  • 8259A中断控制器原理与IDT构建实战
  • ISO周数系统解析与跨行业时间管理实践
  • 深入解析MMC/SD/SDIO主机控制器驱动:从初始化到数据传输实战
  • 手机短信技术全解析:从传统到OTT的演进与应用
  • C#通过AT指令控制语音猫实现串口通信
  • QT------布局layoutStretch失效问题
  • 【langgraph 从入门到精通graphApi 篇】LangGraphAPI 方式调用 - 初识与核心概念
  • MySQL 8.0.35 二进制包安装笔记
  • javascript练习
  • Android项目文件结构与模块化架构详解