在opencv中,我们有时候可能会操作多个摄像头,那么我们如何获取当前摄像头的数量呢?
在网上看到有人修改源码的一些方法来得到摄像头的个数。其实,没有这么复杂。(主要是我没有看懂这种方法)。
我想到的一种方法是利用摄像头的打开函数cvCreateCameraCapture(int )
这个函数如果执行成功的话返回非零,失败的话返回零
int Camera::RefreshCameraNum()
{
CvCapture * m_Captrue;
int i = 0;
//10是随意写的一个数字,根据实际项目,最多可达到多少摄像头数目
for (i = 0; i < 10; i++)
{
m_Captrue = cvCreateCameraCapture(i);
if (m_Captrue == NULL)
break;
cvReleaseCapture(&m_Captrue);//一定要释放 否则程序进程不能完全退出
}
m_nCamNum = i;
return m_nCamNum;
}