当前位置:网站首页>C#_OpenCV使用相机
C#_OpenCV使用相机
2022-07-29 18:45:00 【不可_收_圾】
参考:C#使用OpenCVhttps://blog.csdn.net/sinat_37281674/article/details/119987327
测试代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using OpenCvSharp; //为了使用opencv
using Point = OpenCvSharp.Point; //为了确定我们使用的point是opencv的而不是draw的
using DVPCameraType;//相机SDK
namespace OpenCvSharpTest
{
class Program
{
public static IntPtr m_ptr = new IntPtr();
private static DVPCamera.dvpStreamCallback _proc;
private static Mat srcImage;
/*视频流回调函数*/
public static int _dvpStreamCallback(uint handle, dvpStreamEvent _event, IntPtr pContext, ref dvpFrame refFrame, IntPtr pBuffer)
{
//相机帧数据转成OpenCV的Mat图像
srcImage = new Mat(refFrame.iHeight, refFrame.iWidth, MatType.CV_8UC3, pBuffer);//彩色三通道图像使用CV_8UC3格式,黑白单通道使用CV_8UC1格式
Cv2.ImShow("Camera", srcImage);
Cv2.WaitKey(1);
return 0;
}
static void Main(string[] args)
{
dvpStatus status;//相机状态
uint m_handle = 0;//相机句柄
uint count = 0;//相机数量
status = DVPCamera.dvpRefresh(ref count);//刷新相机数量
status = DVPCamera.dvpOpen(0, dvpOpenMode.OPEN_NORMAL, ref m_handle);//打开相机
//注册视频流回调函数
_proc = _dvpStreamCallback;
status = DVPCamera.dvpRegisterStreamCallback(m_handle, _proc, dvpStreamEvent.STREAM_EVENT_PROCESSED, m_ptr);
status = DVPCamera.dvpStart(m_handle);//启动相机
while (true)
{
}
}
}
}
运行:
边栏推荐
猜你喜欢
随机推荐
Idea工具的使用
答对这3个面试问题,薪资直涨20K
高速无源链路阻抗匹配套路
R语言使用zoo包表示时间序列数据(time series data)
The backslash \\ in MySQL is really a pit
低代码三部曲之未来
记录一个相当坑爹的WSL局域网访问问题
MySQL 中的反斜杠 \\,我上当了
uniapp H5 跳转应用外页面
Postgresql中的pg_memory_barrier_impl和C的volatile
面试突击:为什么 TCP 需要 3 次握手?
Go 语言如何读取 excel 测试数据,简单易学
洪九果品、百果园抢滩港股,卖水果是门好生意吗?
嵌入式开发:嵌入式基础——软件错误分类
如何灵活管理权限,保障团队数据安全?|2分钟了解 ONES
五种常见IO模型
Mobile Banking Experience Test: How to Get the Real User Experience
实现一个可调节大小的 Switch 开关
Setting right:0 after sticky positioning does not take effect
exdark数据集转yolo格式(仅供参考)