繁体   English   中英

从 3d 数组创建 cv::Mat 图像

[英]Creating a cv::Mat image from a 3d array

假设我有一个数组

uint8_t img[1000][1200][3]

其中前两个维度表示图像的大小(高度、宽度),第三个维度表示通道 (BGR)。 例如

img[200][100][1]

给出坐标为 (200, 100) 的绿色像素的值.

如何将此数组转换为 cv::Mat 图像? 我试过了

cv::Mat my_image(1000, 1200, CV_8UC3, img);

但我不确定我得到的结果是否正确。 有什么提示吗?

不是cpp专家,但想法如下:

uint8_t img[1000][1200][3];
uint8_t *p = img;
//Consturctor takes a pointer to image data, possibly you will need to swap height and width. 
cv::Mat my_image(1000, 1200 CV_8UC3, (void*)p);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM