发新帖

[C#/ASP.NET] [Cv] OpenCvSharp调用电脑本机摄像头

零下一度 2023-2-3 777
using OpenCvSharp;
using OpenCvSharp.Extensions;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
/// <summary>
/// 打开摄像头
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnOpenVideo_Click(object sender, EventArgs e)
{
	// 定义图像捕捉方式 从摄像头 , 注意 Windows下需要选择 VideoCaptureAPIs.DSHOW
	var capture = new VideoCapture(0, VideoCaptureAPIs.DSHOW);
	if (!capture.IsOpened())
		return;
	capture.XI_OffsetX = 0; // 以左上角为起点 坐标X
	capture.XI_OffsetY = 0; // 以左上角为起点 坐标Y
	capture.FrameWidth = 640; // 宽
	capture.FrameHeight = 480; // 高
	capture.AutoFocus = true;
	const int sleepTime = 10;
	var window = new Window("cv");
	// Mat作为图像的存储容器
	var image = new Mat();
	while (true)
	{
		capture.Read(image);
		if (image.Empty())
			break;
		// 显示
		window.ShowImage(image);
		// Windows窗体PictureBox加载
		picboxDest.Image = image.ToBitmap();
		int flag = Cv2.WaitKey(sleepTime);
		if (flag >= 0)
		{
			break;
		}
		// 可以防止界面停止响应
		Application.DoEvents();
	}
}


通过NuGet添加程序包。注意 Windows下选择 OpenCvSharp4.Windows。


@蒋智昊的博客




最新回复 (0)
返回
零下一度
主题数
931
帖子数
0
注册排名
1