问题标签 [ycbcr]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
477 浏览

image-processing - YCbCr 视频输入 STM32F746

我正在开发基于 STM32F746 的定制板,该板与 LCD 和 ADV7180 视频解码器 IC 集成。

我将 ADV7180 配置为在自由运行模式下运行。使用 DCMI 获取相机数据到指定的缓冲区。

我正在尝试将 YCbCr 4:2:2 数据转换为 RBG 数据。我正在获取线路事件。. 从实时事件中,我正在执行以下代码将其转换为 RGB,然后使用 ARGB888 将其加载到 LCD。

LCD_FRAME_BUFFER 0xC0000000 LCD_FRAME_BUFFER_LAYER1 0xC0130000 CAMERA_FRAME_BUFFER 0xC0260000

我已经用 LCD_FRAME_BUFFER 初始化了 LCD,并且我只使用单层。

我正在转换数据并使用中间 LCD_FRAME_BUFFER_LAYER1 缓冲区将其复制到 LCD_FRAME_BUFFER。

DCMI --> CAMERA_FRAME_BUFFER --> 转换 --> LCD_FRAME_BUFFER_LAYER1 --> DMA -> LCD_FRAME_BUFFER

但是,我没有将自由运行模式屏幕作为蓝屏。

在此处输入图像描述

0 投票
0 回答
92 浏览

vb.net - 如何在 VB.NET 中生成 YCbCr 立方体的面

我在 VB.NET 中编写了一个程序来生成 YCbCr 颜色空间立方体的一个面。我希望最终图像看起来类似于维基百科上恒定亮度下的 CbCr 平面(其中 Y=1)。

最终,我想创建立方体所有 6 个面的图像,这样我就可以在 Photoshop 中制作动画 3D 立方体(我已经知道如何在 Photoshop 中创建立方体的面图像)。完成的立方体看起来类似于softpixel 网站上的YUV 立方体。

下面是我的程序的输出和到目前为止的代码。我生成 RGB 颜色空间立方体的面没有问题,但 YCbCr 立方体被证明是有问题的。我已经对 RGB 立方体正面的每个像素应用了 YCbCr 转换公式,但是正面的中心应该是白色的,而对面的中心应该是黑色的。有人可以告诉我我缺少什么代码吗?

尝试 YCbCr 立方体的表面

结束类

0 投票
1 回答
1765 浏览

python - python“无法分配给比较”错误

我想要单个 YCbCr 通道小于或大于 128 的图片设置为 0。但我不断收到错误“无法分配给比较”,我真的不知道我做错了什么。

这是代码:

这张图显示了我实现的不同模式:

0 投票
1 回答
558 浏览

matlab - 如何在 MATLAB 中手动将 Y Cb Cr 转换为 RGB?

我的任务是对一系列 JPEG 执行 4:2:0 色度二次采样(颜色压缩)。

第一步是确保我可以生成 Y、Cb 和 Cr 值,然后转换回 RGB 并显示图像。然后我可以回去添加我的子采样逻辑。

我很确定我有正确的公式来生成 Y、Cb 和 Cr 值,但我无法找出返回 RGB 和打印的正确方法。
我们不允许使用任何内置函数(这通常会出现在帮助解决这个问题的过程中)。

我附上了如何获取 Y Cb 和 Cr 值以及如何尝试恢复 RGB 的代码。
目前,在这段摘录之后在 newImage 上运行“imshow”时出现绿屏。

orig 是原始图像,newImage 是我在这段摘录之后运行的“imshow”。

0 投票
0 回答
623 浏览

shader - 如何在 vulkan 中使用多个不可变采样器?

我想在 vulkan 的一个渲染命令中使用多个不可变采样器,但我不知道如何在片段着色器中选择它们。要了解我想要什么以及我的意思,我首先要解释工作版本。

我使用 vulkan 为多个纹理编写了一个渲染管道。第一个版本只支持 ARGB (VK_FORMAT_R8G8B8A8_UNORM) 纹理,工作正常。

为了记录命令缓冲区,我执行了以下操作:

  1. vkBeginCommandBuffer
  2. vkCmdBeginRenderPass
  3. vkCmdBindPipeline
  4. 对于每个纹理
    1. vkCmdBindVertexBuffers
    2. vkCmdBindIndexBuffer
    3. vkCmdBindDescriptorSets(设置两个 ubos 和图像视图)
    4. vkCmdDrawIndexed
  5. vkCmdEndRenderPass
  6. vkEndCommandBuffer

每个纹理都被正确绘制,因为在 4.3 中。我将它的图像视图绑定到包含纹理采样器的片段着色器。

所以现在到我正在努力的部分:

如果频繁更新,ARGB 纹理的使用效率非常低。所以我尝试直接在着色器中使用像 I420 这样的 YCbCr 纹理。在弄清楚如何设置它们之后,我注意到它们必须用作不可变采样器(VkDescriptorSetLayoutBinding pImmutableSamplers),只能在定义描述符集布局时静态绑定(vkCreateDescriptorSetLayout)。这意味着一遍又一遍地使用一个描述符集布局不​​再起作用。正确的?

为了解决这个问题,我为图形管道 (vkCreateGraphicsPipelines) 提供了多个描述符集布局 (vkCreatePipelineLayout)。现在,我能够将每个纹理绑定到管道,这意味着,我可以将多个不可变采样器静态绑定,从不交换。到目前为止一切都很好,但我的片段着色器只使用第一个采样器(准确地说,第一个描述符集)来渲染输出。起初我以为描述符集会取自 vkCmdBindDescriptorSets,但我错了。

这是我的片段着色器:

我已经想通了,可以为着色器的布局提供一个集合(例如layout(set=1, binding=1)),但我需要在渲染任务中更新这个集合(每个纹理),就像我在绘制之前对所有其他绑定所做的那样。

有什么建议么?这里推荐的解决方案是什么?

0 投票
1 回答
654 浏览

image - Go 中的 RGB 到 YUV 420P 图像转换

我想知道,如何在 Go 中执行从 RGB 到 YUV 420P 图像的转换(更准确地说*image.RGBA*image.YcbCr)。image我还没有在包中找到任何标准方法。由于我也没有找到任何库,我唯一的想法是使用 逐个像素地制作它color.RGBToYCbCr(),但我意识到*image.YcbCr没有Set()直接处理像素的方法,所以我有点困惑。我会很感激一些方向或代码。问候

0 投票
1 回答
1007 浏览

python - 如何在 YCbCr 模式下正确读取图像?

我如何知道我是否在 YCbCr 模式下正确读取了 PNG 图像?我得到了不同的像素值,这令人困惑。

我想使用方法 1,因为 scipy 已经为我完成了转换,但我无法找到它的源代码。所以我自己定义了转换函数,但我得到了不同的像素值。

0 投票
1 回答
206 浏览

python - 为什么在 OpenCV 中将 BGR 转换为 YCbCr 与使用方程式手动计算相比继承了不同的值?

我试图检查我的图像转换是否具有与使用 RGB 到 YCbCr 方程手动转换相同的 RGB 值。使用蟒蛇:

它成功地将RGB 图像转换为假定的 YCrCb
(值为85 255 76 43 21 150 255 107 29 128 128 255),同时手动使用方程并将它们转换为图像产生了这个 (值为82 90 240 145 54 34 41 240 110 235 128 128)。

OpenCV 将 RGB 读取为 BGR 的事实是否会影响这一点?或者 OpenCV 是否将 YCbCr 读取为 YCrCb(判断为cv2.COLOR_BGR2YCrCb

0 投票
1 回答
42 浏览

image-processing - 从给定的调色板中找到匹配的颜色

我有一个调色板,要么是 32 要么是 256。然后我有一个输入颜色流(在 RGB 中)。我想找出传入颜色与调色板中的哪种颜色最匹配。我相信这种算法被用于许多图像编辑软件中。

到目前为止,我想出了以下内容:

  1. distance对于每种传入的颜色,通过找出与调色板中每种颜色的距离,找到调色板中最小的颜色。
  2. 为了找到距离,以下方法之一:
    1. R、G 和 B 值差的平方和 ( (R1-R2)² + (G1-G2)² + (B1-B2)²)
    2. 将颜色转换为 HSV,使用 H、S 和 V 值的加权平均值作为距离指标。就像是3 ✕ (H1-H2)² + 2 ✕ (S1-S2)² + (V1-V2)²
    3. YCbCr 距离

我特别在寻找两件事。

  1. 有没有比检查调色板中每种颜色的距离更好的方法?我正在寻找某种分箱算法来从调色板中找到正确的颜色。
  2. 如果坚持检查调色板中每个项目的距离,是否有标准公式被认为是标准的?
0 投票
0 回答
150 浏览

python - 如何将 Ycbcr numpy 数组保存到图像而不更改其数组点?

我有一个 rgb 图像,我将其转换为 Ycbcr 数组。

plt.savefig("Ycbcr_new.jpg")# 保存在我桌面上的一个新文件夹中

我将此数组保存为 Ycbcr_new.jpg,现在我将这个新的 Ycbcr_new 图像转换为一个数组。

答案是:“假”

我的问题是是否可以将新的 YCbCr 数组保存到我桌面上的 YCbCr 图像中而不更改其数组点?

谢谢