在 c++ 中从 YBR_FULL 转换为 RGB

Conversion from YBR_FULL to RGB in c++?

本文关键字:转换 RGB FULL c++ 中从 YBR      更新时间:2023-10-16

您能否解释一下YBR_FULL和RGB之间的关系,以便我能够在C++中将YBR_FULL图像转换为RGB?

我使用 DCMTK 库从 Dicom 图像中获取像素数据作为缓冲区中的字节。对于某些选定的像素,我将像素值设置为0,对于工作正常的RGB,当图像可视化时,设置为0的像素值显示为黑色,但在YBR_FULL的情况下,这些像素显示为绿色。我不太明白问题是什么。你能详细说明我犯了什么错误吗?

已经得到了回答

从 Dicom 映像创建缓冲映像YBR_FULL

这是数学公式的链接

http://www.fourcc.org/fccyvrgb.php

如果将

YBR 值设置为 (0,0,0),则亮度 (Y) 的值正确,但色度(B 和 R)零点正好位于范围的中间,因此您应该尝试使用值 128(如果 B 和 R 有一个字节大小)。 那么你有 YBR = (0, 128U, 128U)