【问题标题】:Crop a YUV image裁剪 YUV 图像
【发布时间】:2014-12-02 15:06:15
【问题描述】:

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

  1. 让我预览 640*480。如何裁剪此 YUV 以获得包含 480*480 YUV 图像的 byte[]。
  2. 如何旋转 YUV 图像。
  3. 如果这很难存档,我该如何裁剪 IplImage。我正在使用 Javacv 对视频进行编码。不幸的是它是绿色的。
  4. 还有其他方法可以存档吗?

提前致谢 阿姆兰。

【问题讨论】:

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


    【解决方案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) 坐标。使用最近邻或双线性插值来获得最终的像素值。

    【讨论】:

      猜你喜欢
      • 2017-05-22
      • 1970-01-01
      • 2022-01-23
      • 2023-04-02
      • 1970-01-01
      • 2015-02-02
      • 1970-01-01
      • 2023-03-22
      相关资源
      最近更新 更多