裁剪YUV图像

时间:2014-12-02 15:06:15

标签: android image image-processing android-camera javacv

我有相机预览回调。在onPreviewFrame上,我将获得YUV数据。默认情况下,我的图像格式为NV21。如果我没错,数据[]是YUV格式。

  1. 让我预览640 * 480.如何裁剪此YUV以获得包含480 * 480 YUV图像的字节[]。
  2. 如何旋转YUV图像。
  3. 如果这很难归档我怎么能裁剪IplImage.I我正在使用Javacv来编码视频。运气不好是绿色的。
  4. 有没有其他方法可以存档?
  5. 先谢谢 Amlan。

1 个答案:

答案 0 :(得分:1)

  1. 假设在剪裁时你想要一个最左边480像素的列,你可以循环图像高度(480行),然后复制Y平面的前480个像素。对于UV平面,只需复制原始UV平面的前480个像素(这将包含240 U和240 V值),环绕图像高度的一半(240行)。

  2. 为给定的旋转角度生成旋转变换矩阵。它会像

    [cos(theta) -sin(theta)
    sin(theta) cos(theta)]
    

    检查wiki以获取更多相关信息。取其逆矩阵,对于合成旋转空图像的每对(x,y)对,应用该变换以获得原始图像中的对应(x,y)。使用最近邻或双线性插值来获得最终像素值。