i.mx53平台上ov5640拍照获取全像素图片
ov5640最大支持2592*1944,15fps的图像获取,在i.mx53平台上利用v4l2驱动进行数据获取,Qt来显示图像。目的是想获取2592*1944像素大小的图片。
应用程序参数设置,流程大致为:
ioctl(fd_v4l, VIDIOC_S_PARM, &parm) // 配置寄存器为2592*1944,15fps
ioctl(fd_v4l, VIDIOC_S_CROP, &crop) // 设置截取大小,参数通过-iw、-ih来配置
ioctl(fd_v4l, VIDIOC_S_FMT, &fmt) // 设置输出样式,参数通过-ow、-oh来配置
输出结果:
./capture -iw 2592 -ih 1944 -ow 640 -oh 480 -qws // 输出图像正常
./capture -iw 2592 -ih 1944 -ow 1280 -oh 960 -qws // 输出图像分为5*5块,如正常图像为"F",显示为横竖各5个“F的一部分,内容相似”,图像总大小正常
./capture -iw 2592 -ih 1944 -ow 2560 -oh 1920 -qws // 输出图像分成了很多很多块
无论输出结果以哪种方式YUYV、RGB565、RGB24效果都是这样。
通过mmap来获取数据,设置的输出(fmt)都有效,输出图像数据在960*720一下都是正常的,以上就出现错误了,1280*960时能够清楚的看出图像分为5*5块了
被这个问题困扰了半个多月了,希望各位给点意见和建议。