您的位置:首页 > 编程语言 > Qt开发

arm上打开摄像头

2015-11-26 22:30 323 查看
在我们做opencv的图像视频采集的和处理的时候,难免会用到摄像头来采集视频图像。而我们在电脑上运行调用opencv的打开摄像头和打开视频的程序时,这时候是可以运行成功的,然后当我们以为移植把opencv的库移植到arm板上,在运行我们的程序应该也是可以顺利打开摄像头的。只有自己到后面动手移植过去的时候才发现运行到打开摄像头和打开视频文件的时候就发生段错误;因为无法读取图像文件。那么问什么PC机上可以。详细的解答我也没有,但是肯定是访问硬件驱动出了问题,就是opencv提供的库函数访问不了底层的视频VIDIO文件(设备驱动描述符文件)。由于不知道怎么解觉,该添加什么库的?就百度查阅了很多,基本上都没有用opencv的打开摄像头的解决(除去个别的用的linux内核版本和opencv版本不同,修改打开摄像头参数-1
,0,202等成功了。但那是比较特殊的条件,反正我没试成)。而是大多数都是改用V4L2的(vidiotolinx2)架构,直接访问摄像头的驱动描述文件,读取视频帧,然后在加以进行图像格式转换。使之能从摄像头本身的图像帧格式转换为qt格式然后显示出来。

关于V4L2的摄像头读取程序网上有很多资料,基本上不用修改多少直接可以用了。本人就是从网上直接找到的程序,然后修改下打开设备驱动号,就可以了通过直接在不同的平台上运行。210和pc机上(dev/vidio0);6410上面使用的是(dev/vidio2)还有就是由于ok6410的lcd大小不合适,需要修改显示的参数,本人直接把网上的源程序参数减半。

通过这段个QT读取摄像头的程序,使我明白了Qt界面编程与驱动程序接口的联系(qt图像界面访问硬件驱动程序的编程)。与之前学的完全的上层应用的编程相比起来比较复杂些,对qt编程的认识再次转折。

再此本人提供下ok6410的打开摄像头的源码,直接用qt编译可以使用。

附程序地址:http://download.csdn.net/detail/lidefu1000810218/9303847
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ok6410 摄像头 opencv qt