在 NXP 给的摄像头实例代码中,测试过程完全正常可以显示,但是项目需要做一个摄像头裁剪工作,因为输入的数据量太大,想对图像一个部分进行分割。
于是查找bsp发现 ,内核做的确实不错 ,有关于裁剪的部分,我们只需要进行一个ioctl 就可以了。
于是进入内核跟踪, 想看看具体做了什么,发现了是对一个名为 (IPU_CSI0_ACT_FRM_SIZE)的寄存器做了处理。
查看手册 ,得知这个是设置进入csi的实际图像大小,于是我们裁切多大,就是设置这个就行了。
具体的IOCTL 命令是 VIDIOC_S_CROP , 我们要在应用层给定一个 struct v4l2_crop 类型的参数,这个参数里面是我们想设置的值。
测试过程中,完全可以实现自定义裁剪。