gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 22:25:52 26 4
gpt4 key购买 nike

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

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

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 中将 Bitmap 转换为 Mat 有什么方便的方法吗?

最佳答案

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

关于c++ - 如何在 OpenCV 中将 RGBA 数组转换为 Mat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39261375/

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