OpenCV与相机的关系
2015-07-03 16:08
225 查看
经常碰到朋友,尤其是计算机视觉初学者朋友问到我关于OpenCV怎么获取图片,怎么把OpenCV跟相机结合起来这一类的问题。本人不才,不过,在平时的工作中,都接触到这方面,今天特意发文章给有些朋友们解惑一下。
我们做视频分析或者说监控行业用的相机,一般来说,有两种:(1)模拟相机;(2)数字相机;
模拟相机,输出的是模拟信号,也就是电压的高低信号。这种相机,现在用在很多的监控场合,例如在银行,当你坐在柜台前的时候,你的头顶上一般会有一个相机对着你的,据笔者观察,其中的大部分,目前都属于模拟相机;这种模拟相机的输出一般可以通过***信号线连接到电视上,也就是说,可以用一根信号线,把相机拍摄的图片用电视机显示出来。模拟相机还在马路边,小区门口的监控室(一般都是用这种相机)等场合见到。模拟相机得到的数据,在进入计算机进行保存、显示、处理之前,需要转换为数字信号(PC只能处理离散的数字信号)。所以,模拟相机在PC端,一般都有PCI接口的视频转接卡,这种视频转接卡,专业术语叫做“视频采集卡”。例如,海康视频采集卡;大华视频采集卡;天敏视频采集卡等,都属于这一类;
通过它,模拟相机的模拟信号就转换为数字信号。换句话说,就变成了JPG,BMP等格式的图片,进而就可以被PC来显示、处理了。
数字相机,目前,常用的就只有RJ45接口和USB接口这两种形式,也有个别相机采用1394接口的。RJ45接口,也就是我们上网用的网线接口,USB接口不用说,相信大家聊QQ都用过。数字相机,可以直接生成JPG或者BMP格式的图片。不过,为了网络传输的快捷,一般都以MPEG或者h.264视频流的格式进行网络传输。一般来说,采用RJ45接口数字相机进行开发的时候,相机的出售方,会给你提供该相机的SDK,通过该SDK,你就可以获取相机发给PC端的网络数据包,通过解压该数据包(在相机SDK都提供),那么,你就获得了一帧一帧的JPG或者BMP格式的图片。如果相机的SDK最终提供给你的是JPG格式,那么,你还需要在内存里面把它解压为BMP格式,然后,才能用Opencv的iplimage格式进行处理。如果是BMP格式,直接赋值给IPLIMAGE就Ok了。另外,USB接口的数字相机(也就是我们平常聊QQ用的摄像头),可以通过直接调用opencv的函数(其实,内部是调用了windows的VFW)来获取iplimage格式的数据,剩下的,就是采用opencv进行处理了。。
相机与PC的连接方式,可以简单的表述为下面的图:
总结一下,相机只是一个图片数据获取工具,获取了图片之后,需要把这些图片“传递”给PC、DSP、ARM等处理终端,然后,在处理终端上,针对不同的需求,调用不同的OpenCV函数就能解决你的问题了。。
我们做视频分析或者说监控行业用的相机,一般来说,有两种:(1)模拟相机;(2)数字相机;
模拟相机,输出的是模拟信号,也就是电压的高低信号。这种相机,现在用在很多的监控场合,例如在银行,当你坐在柜台前的时候,你的头顶上一般会有一个相机对着你的,据笔者观察,其中的大部分,目前都属于模拟相机;这种模拟相机的输出一般可以通过***信号线连接到电视上,也就是说,可以用一根信号线,把相机拍摄的图片用电视机显示出来。模拟相机还在马路边,小区门口的监控室(一般都是用这种相机)等场合见到。模拟相机得到的数据,在进入计算机进行保存、显示、处理之前,需要转换为数字信号(PC只能处理离散的数字信号)。所以,模拟相机在PC端,一般都有PCI接口的视频转接卡,这种视频转接卡,专业术语叫做“视频采集卡”。例如,海康视频采集卡;大华视频采集卡;天敏视频采集卡等,都属于这一类;
通过它,模拟相机的模拟信号就转换为数字信号。换句话说,就变成了JPG,BMP等格式的图片,进而就可以被PC来显示、处理了。
数字相机,目前,常用的就只有RJ45接口和USB接口这两种形式,也有个别相机采用1394接口的。RJ45接口,也就是我们上网用的网线接口,USB接口不用说,相信大家聊QQ都用过。数字相机,可以直接生成JPG或者BMP格式的图片。不过,为了网络传输的快捷,一般都以MPEG或者h.264视频流的格式进行网络传输。一般来说,采用RJ45接口数字相机进行开发的时候,相机的出售方,会给你提供该相机的SDK,通过该SDK,你就可以获取相机发给PC端的网络数据包,通过解压该数据包(在相机SDK都提供),那么,你就获得了一帧一帧的JPG或者BMP格式的图片。如果相机的SDK最终提供给你的是JPG格式,那么,你还需要在内存里面把它解压为BMP格式,然后,才能用Opencv的iplimage格式进行处理。如果是BMP格式,直接赋值给IPLIMAGE就Ok了。另外,USB接口的数字相机(也就是我们平常聊QQ用的摄像头),可以通过直接调用opencv的函数(其实,内部是调用了windows的VFW)来获取iplimage格式的数据,剩下的,就是采用opencv进行处理了。。
相机与PC的连接方式,可以简单的表述为下面的图:
总结一下,相机只是一个图片数据获取工具,获取了图片之后,需要把这些图片“传递”给PC、DSP、ARM等处理终端,然后,在处理终端上,针对不同的需求,调用不同的OpenCV函数就能解决你的问题了。。
相关文章推荐
- Linux远程连接图形界面的几种方法
- Linux基础系列(二)Linux系统文件系统详解
- 压缩及解压缩命令tar的使用
- Apache虚拟主机搭建(单IP多网站服务器配置)
- Shell Script
- Centos5.6 VNC安装配置
- 无法启动Windows安全中心服务怎么办?邪恶的 拷啦快速拷贝 KaolaFastCopy
- opencv imread函数报错,读不到图片,原因是:
- CentOS7.0安装Nginx 1.7.4
- Linux学习笔记(八)——Linux磁盘与文件系统管理
- Hadoop层级队列组织方式
- OpenFlow Switch学习笔记(二)——OpenFlow Ports
- 问题:无法在 45 秒内启动服务器 localhost 上的 Tomcat v7.0 Server
- modal dialog content ajust backdrop
- tomcat-web容器的介绍
- 打开VS调试不进入开发的网站直接跳转到主页
- MapReduce详细的工作流程(MapReduce2)
- linux mutt详解
- 一天一工程总结系列-7.3-facebook pop
- Gensim官方教程翻译(三)——主题与转换(Topics and Transformations)