C++ 使用OpenCV将YUV转换为有损压缩
如何将YUV颜色空间中的图像转换为JPEG图像 我将原始图像数据保存在char*变量中:C++ 使用OpenCV将YUV转换为有损压缩,c++,image-processing,opencv,C++,Image Processing,Opencv,如何将YUV颜色空间中的图像转换为JPEG图像 我将原始图像数据保存在char*变量中: char* frame = (char*)camera->getFrame(); // YUV colorspace image data 我需要将其转换为JPEG图像数据。我不想将它保存到磁盘,因为我将以流的形式发送它。OpenCV本身不导出此功能。最干净的方法是使用libjpeg进行编码。请参见这些问题的答案: 检查opencv src中的cvcolor.cpp文件。这里面有所有的颜色转换
char* frame = (char*)camera->getFrame(); // YUV colorspace image data
我需要将其转换为JPEG图像数据。我不想将它保存到磁盘,因为我将以流的形式发送它。OpenCV本身不导出此功能。最干净的方法是使用
libjpeg
进行编码。请参见这些问题的答案:
- jpg编码器和解码器在grfmt_jpeg.cpp中,它恰好包含“jpeglib.h”
- 你可以直接打电话给他们
那可不好。我需要先压缩图像,然后在一个装有封闭嵌入式linux的系统上对其进行流式处理。它只有OpenCV,我无法安装任何其他库。是否有其他方法可以在流媒体播放之前压缩图像,从而使图像更轻?我需要节省时间。使用gzip是一个好主意吗?在我的第二个链接的公认答案中,您会发现OpenCV内部有用于编码为JPEG而不写入文件的函数。只是在较新版本的OpenCV中,它们可能会更改,而无需另行通知,因为它们不是API的一部分。如果您被困在一个带有特定库设置的封闭系统上,您可能无论如何都不关心这个问题。此外,zip算法总是有帮助的,但您不应该期望使用它会减少50%以上。。