OpenCV 如何为imencode编码原始图像信息
OpenCV how to encode raw image information for imencode?
我在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...]
元数据的正确顺序是什么,宽度、高度和通道是否足够?
您可以使用 Mat 构造函数从数据和元数据创建图像
Mat::Mat(int rows, int cols, int type, void* data, size_t 步骤=AUTO_STEP(;文档在这里
cv::Mat image = cv::Mat(height, width, CV_8UC3, raw_data);
type
参数指定通道数和数据格式。例如,典型的 RGB 图像数据unsigned char
,通道数3
,因此其类型 = CV_8UC3
可用的 OpenCV 垫类型定义为 cvdef.h
相关文章:
- 使用vtkImageReslice重新切片三维原始图像
- 在原始图像中显示组件周围的矩形
- OpenCV 如何为imencode编码原始图像信息
- 如何从内存中读取原始图像 (YUV 4:2:2) 格式的图像数据
- 使用C 和目标C从原始图像中复制数据
- Windows媒体基础使用原始图像对视频进行编码
- 从数据库中以 blob 数据类型形式存储的原始图像数据中检索 CImage 对象
- OpenCV:如何使用阈值正确分割图像/使用二进制图像对原始图像进行分割
- 原始图像和 C++ 中的 DCRaw
- QT QGraphicsScene 自动调整大小为原始图像大小
- 解密的图像与原始图像不同
- 如何在Qt GUI中显示原始图像文件
- 原始图像和调整大小的图像之间的关系(C++/OpenCV)
- 压缩原始图像缓冲区
- 为什么我必须将原始图像数据的宽度除以3
- OpenGL将原始图像转换为红色通道
- 在OpenCV中保存原始图像
- 如何保持原始图像格式时插入到一个CRichEditCtrl
- 如何通过SURF将模板与原始图像匹配?
- 用c++读取原始图像文件