2014-12-02 221 views
0

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

  1. 让我有640 * 480的预览。如何裁剪此YUV以获得包含480 * 480 YUV图像的字节[]。
  2. 如何旋转YUV图像。
  3. 如果这难以存档,我该如何裁剪IplImage。我正在使用Javacv对视频进行编码。运气不好,呈绿色。
  4. 是否有任何其他方式来归档?

在此先感谢 Amlan。

回答

1
  1. 假设你要一列的最左边480个像素,而裁剪,你可以遍历所有的图像高度(480行),只是第一个480个像素复制为Y平面。对于UV平面,只需复制原始UV平面中的前480个像素(这将包含240 U和240 V值),环绕半个图像高度(240行)。

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

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

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