【发布时间】:2010-11-18 14:48:32
【问题描述】:
如何将 YUV 颜色空间中的图像转换为 JPEG 图像?
我有一个原始图像数据保存在一个 char* 变量中:
char* frame = (char*)camera->getFrame(); // YUV colorspace image data
我需要将其转换为 JPEG 图像数据。我不想将它保存到磁盘,因为我会以流的形式发送它。
【问题讨论】:
标签: c++ image-processing opencv
如何将 YUV 颜色空间中的图像转换为 JPEG 图像?
我有一个原始图像数据保存在一个 char* 变量中:
char* frame = (char*)camera->getFrame(); // YUV colorspace image data
我需要将其转换为 JPEG 图像数据。我不想将它保存到磁盘,因为我会以流的形式发送它。
【问题讨论】:
标签: c++ image-processing opencv
OpenCV 本身不导出此功能。最干净的是使用libjpeg 进行编码。查看这些问题的答案:
【讨论】:
检查文件 cvcolor.cpp 的 opencv src。这包含了所有的颜色转换。
我建议你修改这行附近的现有例程:
/* BGR/RGB -> YCrCb */
它们几乎正是 YUV 编码所需要的。如果是 4:4:4 而不是 4:2:2 或 4:1:1
用于 jpg 压缩
jpg 编码器和解码器位于 grfmt_jpeg.cpp 中,而 #include "jpeglib.h"
你可以直接调用这些
【讨论】: