【发布时间】:2019-05-29 18:38:40
【问题描述】:
我在 C++ 中。
假设某个神秘的函数getData() 返回图像的所有像素信息,但只返回图像的像素信息。
即char*,它只指向没有元数据的像素信息(没有宽度、长度、高度,也没有任何形式的通道)
因此我们有:
unsigned char *raw_data = getData();
然后我们有另一个函数,它返回一个包含元数据的结构。
例如:
struct Metadata {
int width;
int height;
int channels;
//other useful fields
}
我现在需要以正确的方式添加对象元数据以创建有效的图像缓冲区。
所以不是[pixel1, pixel2, pixel3 ...]
我会,例如[width, height, channels, pixel1, pixel2, pixel3...]
添加元数据的正确顺序是什么?宽度、高度和通道是否足够?
【问题讨论】:
-
为
cv::imencode?您不需要在任何地方添加任何内容,只需 construct acv::Mat包装像素缓冲区,并将其传递给函数。
标签: c++ image opencv memory-management