C# 如何调用摄像头识别颜色
时间: 2023-09-13 15:12:33 浏览: 91
C#可以使用OpenCV库来调用摄像头进行颜色识别。
以下是一个简单的代码示例:
```csharp
using Emgu.CV;
using Emgu.CV.Structure;
using System.Drawing;
// 创建一个VideoCapture对象,打开摄像头
VideoCapture capture = new VideoCapture();
// 检查是否成功打开摄像头
if (!capture.IsOpened)
{
// 打开失败,抛出异常或者进行其他处理
}
// 创建一个窗口用于显示摄像头的实时画面
CvInvoke.NamedWindow("Camera", NamedWindowType.Normal);
while (true)
{
// 从摄像头中获取一帧画面
Mat frame = capture.QueryFrame();
// 进行颜色识别
Image<Bgr, byte> image = frame.ToImage<Bgr, byte>();
Image<Gray, byte> mask = image.InRange(new Bgr(0, 0, 0), new Bgr(100, 100, 100));
// 在窗口中显示实时画面和识别结果
CvInvoke.Imshow("Camera", frame);
CvInvoke.Imshow("Mask", mask);
// 等待一段时间,按下ESC键退出循环
if (CvInvoke.WaitKey(10) == 27)
{
break;
}
}
// 释放资源
CvInvoke.DestroyAllWindows();
capture.Dispose();
```
该示例中使用的是Emgu CV库,可以使用NuGet进行安装。在识别颜色时,使用了`InRange`方法对图像进行二值化处理,将指定颜色范围内的像素设为白色,其他像素设为黑色。在窗口中显示实时画面和识别结果,按下ESC键退出循环。