功夫不负有心人,通过了一天的郁闷+一晚上的瞌睡+奇怪的梦+一大早的努力,我终于搞定了USB摄像头驱动,无图无真相,下面是图:
原来是我对摄像头寄存器设置的问题,没有设置以前是640X480 VGA分辨率的,设置后是320X240 QVGA分辨率,所以显示成320 X 240才正确。
通过编写ARM WINCE 摄像头接口驱动和USB摄像头驱动,对于图像质量问题,我先总结如下:
(1)如果出现图像色偏,则应该修改摄像头的白平衡(控制了红色和蓝色的色差)和曝光控制等相关寄存器。
(2)如果出现了图像锯齿并伴有小部分花图或者1/4,1/2,1/8等比例不正确的图像则可能是摄像头输出图像的分辨率没有匹配正确。
(3)如果摄像头传输的YUV视频流,显示成BMP后出现绿色图或者紫色图或者蓝色和红色发生颜色交换(蓝色的物体采集显示成红色,反之亦然)。则可能要考虑YUV->RGB或者YUV数据的内存顺序,最好将原始数据输出成TXT文件,观察在纯白色和纯黑色,纯红色等下的数据变化来辨别YUV内存顺序。