<p>此函数调用中<code>yuv_array</code>底部存储的u和v通道信息:
<code>cv2.cvtColor(yuv_array, cv2.COLOR_YUV420p2RGB)</code></p>
<p>预期的格式如下所示:</p>
<ol>
<li>添加到yuv_数组底部的额外行的上半部分用u信息填充。行是交错的;第一行u正好位于左侧插槽中y通道信息的下方,第二行u位于同一行<code>yuv_data</code>的右侧插槽中,依此类推</李>
<li>v通道数据是相同的,但对于添加到yuv_阵列的额外行的下半部分</李>
</ol>
<p>以下是将MarkSetchnell放置在原始程序中时生成预期图像的连接代码:</p>
<pre><code> #place y channel into buffer
all_yuv_data[0:fullsize[0],0:fullsize[1]] = yuv_data[0]
#formatted as interleaved u rows on top, (half on left, half on right)
#and interleaved v rows on bottom
all_yuv_data[fullsize[0]:fullsize[0]+halfsize[0]//2, :] = yuv_data[1].reshape(-1, fullsize[1])
all_yuv_data[fullsize[0]+halfsize[0]//2:,:] = yuv_data[2].reshape(-1, fullsize[1])
#convert to rgb
rgb = cv2.cvtColor(all_yuv_data, cv2.COLOR_YUV420p2RGB);
</code></pre>
<p>以下是所有_yuv_数据的灰度图像,以确保清晰:
<a href="https://i.stack.imgur.com/LiLEZ.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/LiLEZ.png" alt="grayscale image of all_yuv_data with y channel at the top, followed by the u and then the v channels"/></a></p>
<p>以及调用<code>cv2.cvtColor(all_yuv_data, cv2.COLOR_YUV420p2RGB)</code>后的结果
:
<a href="https://i.stack.imgur.com/XZDx6.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/XZDx6.png" alt="glorious image of the Grand Kingdom splash screen with correct coloring"/></a></p>