gpt4 book ai didi

opencv - OpenCV从YUV_420_888平面创建3个垫子对象

转载 作者:行者123 更新时间:2023-12-02 16:38:24 25 4
gpt4 key购买 nike

无论如何,是否要创建 3个垫对象来保存YUV_420_888飞机数据。
一个用于Y,另一个用于U,最后一个用于V平面。

我不想将它们转换为BGR或其他任何东西,只需保存上面的数据即可。

最佳答案

您可以使用垫子拆分。

例如,在BGR图像中(我将在c++中向您展示,因为我不喜欢opencv4Android):

cv::Mat src = cv::imread("some.png");
cv::Mat planes[3];
cv::split(src, planes);

如果您有BGR,现在 planes[2]中将有R-Plane。

另一种可能性是,仅获取Planes Buffer例如(现在为Java Android):
/* Get your Image somehow */
Image.Plane Y = img.getPlanes[0];
Image.Plane U = img.getPlanes[1];
Image.Plane V = img.getPlanes[2];

//now just for Y e.g.
ByteBuffer yBuffer = Y.getBuffer();
byte[] yBytes = new Byte[yBuffer.remaining()];
yBuffer.get(yBytes);

//read the byte data into a cv::Mat

关于opencv - OpenCV从YUV_420_888平面创建3个垫子对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40845921/

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