gpt4 book ai didi

c++ - OpenCV如何为imencode编码原始图像信息?

转载 作者:行者123 更新时间:2023-11-28 04:17:02 25 4
gpt4 key购买 nike

我在 C++ 中。

假设某个神秘函数 getData() 返回图像的所有像素信息,但仅返回图像的像素信息。

char* 仅指向没有元数据的像素信息(没有宽度、长度、高度,也没有任何形式的 channel )

因此我们有:

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...]

添加元数据的正确顺序是什么?宽度、高度和 channel 是否足够?

最佳答案

您可以使用 Mat 构造函数从数据和元数据创建图像

Mat::Mat(int rows, int cols, int type, void* data, size_t step=AUTO_STEP); // documentation here

cv::Mat image = cv::Mat(height, width, CV_8UC3, raw_data);

type 参数指定 channel 数和数据格式。例如,典型的 RGB 图像数据是 unsigned char, channel 数是 3 所以它的类型 = CV_8UC3

可用的 OpenCV Mat 类型已定义 cvdef.h

关于c++ - OpenCV如何为imencode编码原始图像信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56366682/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com