繁体   English   中英

如何在OpenCV中将RGBA数组转换为Mat

[英]How to convert RGBA array into Mat in OpenCV

我正在寻找一种在OpenCV中将RGBA位图转换为Mat的方法。 我尝试过此方法 ,但是输出图像的颜色错误并且上下颠倒。

我使用结构数组存储位图。

typedef struct {
    unsigned char r,g,b,a;
} BITMAP;
BITMAP* input = (BITMAP*)malloc(width*height*sizeof(BITMAP));
...
Mat image(height, width, CV_8UC4, input);

有谁知道在OpenCV中将位图转换为Mat的便捷方法吗?

OpenCV的cv :: Mat使用行主要排序(首先沿通道,然后沿列,然后沿行,递增)。 因此,(0,0)处的像素是图像中最左上的像素。 如果您的BITMAP的左下角为(0,0),则图像将倒置显示。 通常,OpenCV首选通道的BGRA排序。 通道的重新排序会弄乱颜色。

暂无
暂无

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

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