gpt4 book ai didi

c++ - cv::cvtColor 获取错误大小的图像

转载 作者:搜寻专家 更新时间:2023-10-31 00:31:00 24 4
gpt4 key购买 nike

我正在使用以下代码将 RGB 格式图像转换为 YUVI420 格式图像,但结果 i420Mat 在颜色和大小上都是错误的。

cv::cvtColor(rgbMat, i420Mat, CV_RGB2YUV_I420);

源 rgbMat(RGB 格式):列:480,行:640;

对应的CIImage:

enter image description here

目标 i420Mat(YUVI420 格式):列:480,行:960;

对应的CIImage:

enter image description here

理想情况下,它们应该保持相同的大小,对吗?

最佳答案

不,它不应该保持相同的大小,因为 YUV_I420 是平面的。请注意,输入图像是 3 channel ,但输出图像是 1 channel 。

图像尺寸较大,因为图像的顶部(640*480)代表Y'平面(亮度),而底部对应地代表U和V分量。所以所有的颜色平面都在一个单 channel 图像上表示,所以它有更大的尺寸。参见维基百科的图片:

enter image description here

Y' 平面与灰度图像完全相同。

为什么我们在底部看到四张图片?

前两幅图像对应于 U 平面。左图为偶数行,右图为奇数行。底部的V面也是如此。

有关更多信息,请阅读 wikipedia 中的精彩文章, 和 fourcc.org .

关于c++ - cv::cvtColor 获取错误大小的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35194754/

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