opencv - OpenCV (CV_8UC4) 中的 4 channel 图像矩阵中的数据是如何布局的?

标签 opencv mat rgba

OpencV (CV_8UC4) 中的 4 channel 图像矩阵中的数据是如何布局的?

cv::Mat A = cv::Mat::zeros(height, width, CV_8UC4);

是吗:

[R1,G1,B1,A1,R2,G2,B2,A2,...] 

或:

[B1,G1,R1,A1,B2,G2,R2,A2,...] 

还是别的?

最佳答案

这取决于。如果您在 BGRA 空间中,那么它是:

[B1,G1,R1,A1,B2,G2,R2,A2,...]

如果你在 RGBA 空间,那么它是:

[R1,G1,B1,A1,R2,G2,B2,A2,...]

默认情况下,OpenCV 将图像加载为 BGR (BGRA) 空间。所以如果你没有更改任何东西,它应该是:

[B1,G1,R1,A1,B2,G2,R2,A2,...]

关于opencv - OpenCV (CV_8UC4) 中的 4 channel 图像矩阵中的数据是如何布局的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35129852/

相关文章:

python - 使用 Opencv python 从图像中删除蒙版圆圈

c++ - 将单 channel 图像转换为 3 channel 图像 C++/OpenCV

c++ - 合并几个 boost 序列化的 OpenCV Mats

c++ - 使用 RGB 源和 RGBA 叠加实现近乎实时的 CPU 功能,如 glAlphaFunc(GL_GREATER)

javascript - 从多个 RGBA 值创建 WebGL 纹理

python - python中没有highgui

python - 我怎样才能释放相机<imutils.video.webcamvideostream.WebcamVideoStream instance at 0x7f2c40e75b00>

c++ - 如何在 opencv 中屏蔽 float 垫

java - 在透明垫上绘制网格

php - 如何向 OpenAI PHP 库提供 RGBA png 文件