Tag: yuv

YUV420到RGB颜色转换错误

我正在converting YUV420格式的图像converting为opencv RGB图像,但conversion.后我得到的是Orange图像conversion. 我使用以下代码来做到这一点。 我的代码有问题吗? int step = origImage->widthStep; uchar *data = (uchar *)origImage->imageData; int size = origImage->width * origImage->height; IplImage* img1 = cvCreateImage(cvGetSize(origImage), IPL_DEPTH_8U, 3); for (int i = 0; iheight; i++) { for (int j=0; jwidth; j++) { float Y = data[i*step + j]; float U = data[ (int)(size + (i/2)*(step/2) + j/2) […]

YUV 422,YUV 420,YUV 444

我有例如4 * 4图像。 我想分别提取Y,U和V组件。 如果图像是YUV 422,YUV 420和YUV444,该怎么做。 我有兴趣知道数组的结构如何在422,420和444中存储Y,U和V,以便可以访问它。

如何转换RGB – > YUV – > RGB(双向)

我想要一对转换算法,一个从RGB到YUV,另一个从YUV到RGB,它们是彼此相反的。 也就是说,往返转换应保持值不变。 (如果您愿意,将YUV替换为Y’UV,YUV,YCbCr,YPbPr。) 这样的事情存在吗? 如果是这样,它是什么? 发布的解决方案( 如何在C / C ++中执行RGB-> YUV转换? , http://www.fourcc.org/fccyvrgb.php,http : //en.wikipedia.org/wiki/YUV )只是反转(当省略钳位到[0,255]时,两个3×3矩阵是反转的)。 但是省略这种钳位可以产生负亮度等问题,这会对YUV空间中的图像处理造成严重破坏。 保持钳位使转换非线性,这使得定义逆变得棘手。

通过GLSL将YV12转换为RGB的问题

我正在尝试使用GLSL着色器完成本文中提到的YV12到RGB转换 。 我的应用程序从磁盘加载原始YV12帧并尝试使用GLSL着色器执行转换。 但是,生成的图像会垂直翻转并出现一些颜色问题。 我认为问题可能是图像被读取为char (1字节)数组,然后转换为GLushort数组(2字节)。 你怎么看? 这是原始YUV框架的样子: 并且可以从此处下载应用程序加载的原始框架 。 这是我得到的输出: 我正在分享下面的应用程序的源代码: #include #include #include #include #include #include #include #include #include #include #ifndef SEEK_SET # define SEEK_SET 0 #endif static GLfloat Xrot = 0, Yrot = 0, Zrot = 0; static GLint ImgWidth, ImgHeight; static GLushort *ImageYUV = NULL; static void DrawObject(void) { glBegin(GL_QUADS); glTexCoord2f(0, […]

如何在C / C ++中执行RGB-> YUV转换?

如何在C / C ++中执行RGB-> YUV转换? 我有一些Bitmap .. RGB我需要将它转换为YUV 库? TUTS? 文章?