图像二进制解释:未知图像格式

2024-02-09

假设我有某种格式的图像(其二进制表示形式,例如来自 OpenCV 的 cv::Mat 或来自 Android 的 YuvImage,未压缩),并将其数据解释为 YUV NV21(嗯,这是 DJI 提供的示例) SDK,差不多了)。这是我所得到的:

由此,我假设原始格式不是 NV21。 YUV2? RGB888? RGB32?还有其他东西吗?

如何猜测二进制数据的原始格式是什么?

如果这有帮助,帧是从 DJI 无人机流中获取的。


YUV 图像输出使用 Android 库,根据所使用的设备会产生不同的 YUV 格式。

就我而言,根据我使用的两个设备中的哪一个,我需要切换两个颜色通道(NV12 到 NV21)的字节。

真正帮助我理解我所拥有的格式的是使用以下 YUV 播放器:https://github.com/Tee0125/yuvplayer https://github.com/Tee0125/yuvplayer

在播放器中,您可以主动更改数据的解释方式,只需测试不同的设置,直到找到正确的设置。

虽然不知道你是否需要,但我会提供我用来切换频道的方法。

/**
 * Changes a NV12 yuv Frame to the NV21 format. Basically the two color channels are switched.
 *
 * @param yuvFrameNV12 The YUV Frame in the NV12 format.
 * @param width The width of the frame.
 * @param height The height of the frame.
 * @return The YUV Frame in the NV21 format.
 */
private static byte[] convertNV12toNV21(byte[] yuvFrameNV12, int width, int height) {
    final int length = yuvFrameNV12.length;
    for (int i1 = 0; i1 < length; i1 += 2) {
        if (i1 >= width * height) { //start after the luminance bytes
            byte tmp = yuvFrameNV12[i1];
            yuvFrameNV12[i1] = yuvFrameNV12[i1+1];
            yuvFrameNV12[i1+1] = tmp;
        }
    }
    return yuvFrameNV12;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

图像二进制解释:未知图像格式 的相关文章

  • Opencv中内存Mat表示

    我知道在内存中opencv将Mat对象表示为一个大数组 因此 如果我有 3 个尺寸为 200x200 的通道垫 那么在内存中它将将该垫存储在尺寸为 3x200x200 的数组中 或者更一般地说 内存中的任何 Mat 都将存储为channel
  • 如何使用 PHP 在邮件正文中发送 Base64 图像?

    我正在尝试使用下面的代码使用 PHP 发送一封正文上包含 base64 图像的电子邮件 但该图像永远不会出现 如果我更改为 URL 它可以工作 但它不能与 base64 一起使用 我只在新页面上测试了base64 img src base6
  • 从 iPhone 上传图像/音频到服务器无法发送大图像

    我不知道这是我的iPhone代码还是服务器的问题 我正在使用 NSURLConnection 将图像 音频从 iPhone 上传到服务器 如果图像和音频的大小小于 60KB 则可以正常上传 如果超过 60KB 我会从服务器收到 400 Ba
  • 如何在 Ubuntu 16.04 上安装适用于 Python 2.7 的 openCV 2.4.13?

    我尝试了很多在线帖子来安装 opencv 但它们不适用于 Ubuntu 16 04 有人可以给我安装 openCV 2 4 13 的步骤吗 我不久前制作了一个脚本 用于安装最新版本的 OpenCV 截至本答案的最后一次更新为 4 2 这是它
  • jQuery 插件 imagemapster 没有做任何事情

    我对 javascript 和 jQuery 还比较陌生 所以请记住 这可能是一个我没有看到的明显解决方案 我引用了 jQuery 它对于其他事情来说工作得很好 也许 imagemapster 参考有问题 我下载了here http www
  • OpenCV 中更新窗口的 waitKey() 的替代方法

    到目前为止我见过的所有示例和书籍都建议使用 waitKey 1 来强制重新绘制 OpenCV 窗口 这看起来很奇怪而且太老套了 不必要的时候为什么还要等待 1 毫秒呢 还有其他选择吗 我尝试了 cv updateWindow 但它似乎需要
  • MFC CImage alpha 混合出错

    我必须在图片控件上呈现由两个 PNG 文件组成的图像 其中顶部图像在某些位置具有透明像素 结果应该是plotter png 与 bar png 顶部重叠显示为 注意条上奇怪的白色轮廓 但应该是 我为它编写的代码很简单 CImage imag
  • 如何在 OpenCV 中删除 mouseCallback

    在使用 C 的 OpenCV 中 有没有办法删除 mouseHandler int event int x int y int flags void param 通过函数添加到窗口 image window cv setMouseCallb
  • 将 RGB 转换为黑色或白色

    我如何在Python中获取RGB图像并将其转换为黑白图像 不是灰度 我希望每个像素要么是全黑 0 0 0 要么是全白 255 255 255 流行的 Python 图像处理库中是否有任何内置功能可以完成此任务 如果不是 最好的方法是循环遍历
  • 更新表格视图图像子视图中的图像的最佳方法是什么?

    具体来说 如何从 uitableview 单元格中获取图像子视图 我的表视图从网络异步获取数据 当我第一次创建图像视图时 我通过以下方式添加了视图 imageView setImage image cell addSubview image
  • Bitmap.Maketransparent 函数的不同结果

    我的问题是我想让图像背景透明 以下功能对我来说效果很好 但在另一台机器上进行测试时 我发现有很多伪影颜色 并且透明度不像我的机器和其他一些机器上那么清晰 我正在使用调试版本 测试是在发布版本上完成的 但即使使用发布版本 我们也会在不同的机器
  • 使用 PHP 上传、调整图像大小并裁剪图像中心

    我想要创建一个非常非常基本的上传 调整大小和裁剪 PHP 脚本 其功能与 Twitter 用于上传头像图片的方法相同 无论如何我最后检查过 我希望脚本拍摄任何尺寸的图像 将最短边的大小调整为 116 像素 然后裁剪顶部和底部 如果是横向 则
  • Java无损保存原始JPEG

    如下所示 我有第一张图像是原始 JPEG 图像 第二张图像用于缓冲图像 然后使用保存http www lac inpe br JIPCookbook 6040 howto compressimages jsp http www lac in
  • 位图太大 as3

    在AS3中 我从zip文件加载png nochump的zip库通过ByteArray到Loader png 的宽度最大可达 45k 像素 但高度仅为 120 像素 这在 Flash 中产生了一个问题 因为图像的宽度只能约为 8000 像素
  • 去除 OCR 图像处理中的背景颜色

    我正在尝试删除背景颜色 以提高 OCR 对图像的准确性 示例如下所示 我会将所有字母保留在后处理图像中 同时仅删除浅紫色纹理背景 是否可以使用一些开源软件如Imagemagick将其转换为二值图像 黑 白 来实现这一目标 如果背景有不止一种
  • 将图像原始尺寸保留在较小的 div 内

    我有一个 600x400px 的图像 并希望将其放在尺寸为 240x200px 的较小 div 内 但图像缩小或扭曲 我希望原始尺寸的图像集中在较小的 div 中 这会隐藏一些图像 我编写了这个 CSS 规则来应用于不同的图像尺寸 theB
  • imageio.IIOException:无法读取输入文件

    我一周前启动了 Java 现在我想将图像插入到我的窗口中 无论我尝试什么 我都会在 Eclipse 中看到这个 javax imageio IIOException 无法读取输入文件 package graphics import java
  • 检测骰子的上侧

    是否可以检测骰子的上面 虽然从顶部看这将是一项简单的任务 但从许多角度来看 可以看到多个侧面 Here is an example of a dice feel free to take your own pictures 您通常想知道自己
  • 继续使用 sketch.js 编辑草图图像 [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在使用 sketch js 中的示例 http intridea github io sketch js http intridea g
  • 查找 ImageView 相对于其显示的图像的位置

    所以问题就在这里 我在 ImageView 中显示一个大图像 需要找到它相对于图像的位置 像这样 Image gt ImageView

随机推荐