问题标签 [bgr]

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 回答
86 浏览

c++ - 如何将 HSV 掩码转换为 BGR?

对于我正在编写的这个颜色检测程序,我基本上将图像转换为 HSV 并对其进行遮罩以检测黄色(黄色为白色,否则为黑色)然后简单地查看给定像素是否为白色。

问题是,要查看给定像素的值是否为白色,我尝试将其转换回 BGR,但 opencv 不断抛出一个错误,因为掩码有一个通道,BGR 有 3 个(我不需要解释为什么会这样,问题在下面)

我发现的唯一解决方法是在外部编写掩码(即,将其保存为图像)然后将其读入,然后就可以了,但是效率极低。

如何找到解决此问题的方法?谢谢你的时间

(ps。对于上下文,黄色是一种很难检测的颜色。我使用距离来查看像素是否最接近 BGR 橙色、黑色、蓝色、白色或灰色。如果像素是橙色,我会检查相应的像素是否在蒙版被检测为黄色。如果像素是白色的,我说它是黄色的,否则它实际上是橙色的。系统运行良好,我只是不想在外部保存它)

0 投票
0 回答
39 浏览

python - 将图像格式从 bw 转换为 bgr

我知道在python(使用opencv)中,图像是用整数矩阵编码的。

如果图像是黑白的,则所有信息都在矩阵 HeightxWidth 内,其中 (i,j) 位置的 int 给出了第 (i,j) 个像素的灰度细微差别。

当图像被着色时,颜色在颜色空间中被分解为三个坐标,因此所有信息都存储在一个矩阵HeightxWidthx3中,因为每个像素需要3个坐标。

我的问题是如何将给定的黑白图像转换为 BGR 格式,这是 opencv 主要使用的格式。

谢谢

弗朗切斯科

0 投票
0 回答
24 浏览

c++ - 有多少像素值的差异可以忽略不计?

我从 Basler 相机中获取了 Bayer 图像(原始数据)并将其保存在 CSV 文件中。我再次从相机获取 GBR 图像并使用下面的代码将其转换为原始数据并将其保存为 CSV 文件。但这两个 CSV 文件是不同的。70% 的单元格完全相同,其他单元格的差异在 -130 到 127 之间,但只有 4% 的单元格的差异大于 5 或​​小于 -5。问题是什么?我该如何解决?还是正常?

'''

0 投票
1 回答
125 浏览

opencv - opencv(getTrackbarPos)颜色在图像中没有变化,只有值在变化

我正在使用 python OpenCV 创建一个轨迹栏,然后通过更改 BGR 值来更改图像的颜色。当我运行跟踪栏的代码时,当我更改 BGR 的值时,我将只获得值,但图像的颜色保持黑色。

代码运行没有任何错误,但运行后当我尝试更改 BGR 值时,颜色没有改变。我正在学习本教程 (YouTube) - https://www.youtube.com/watch?v=fM6ff3VEviI&list=PLS1QulWo1RIa7D1O6skqDQ-JZ1GGHKK-K&index=13

我还尝试添加开关轨迹栏,但即使将颜色更改为 1,颜色也不会改变

0 投票
0 回答
39 浏览

python - 将 RGB 颜色应用于 HSV 单色图像

我有一个具有一种颜色和白色(透明)背景的HSV图像(PNG)。我想用以下RGB值更改图像的颜色:

更改颜色后,我需要使白色背景透明。我想这是通过alpha channel=0完成的,但我不清楚如何。我该怎么做呢?我想了解RGB->HSV->BGR转换的工作方式,我将来会需要它。

到目前为止,我一直在使用 Python 和 CV2 进行测试,并设法将 Hue 更改为随机值,但这不是我需要的解决方案。

PS我拥有这张图片,它仅用于演示。

0 投票
1 回答
48 浏览

c++ - 相同的图片 2 opencv 中不同的平均颜色

我正在 windows10 上开发 opencv 4.5.2,我的代码应该能够识别颜色。我在扫描一张 20x20 的简单图片时遇到了一个问题,它的颜色肯定是红色的。

在此处输入图像描述

当我运行以下代码段时

我得到的输出是

问题是这两种颜色不同,因为 hsv(88, 251, 238) 是一种绿色,而 bgr(8, 3, 238) 是我期待的红色。要在 hsv 颜色空间中处理我需要的颜色。任何人都可以解决这个问题吗?先感谢您。

0 投票
1 回答
114 浏览

python - 使用 OpenCV Python 从 BGR 转换为 YUYV

我一直在尝试将 BGR 捕获的帧转换为 YUYV 格式。

在 OpenCV Python 中,我可以使用转换代码将 YUYV 转换为 BGR,COLOR_YUV2BGR_YUY2但我无法执行此操作的反向操作(此操作没有转换代码,我尝试过COLOR_BGR2YUV,但转换不正确)。我很好奇如何将3通道BGR帧转换为2通道YUYV帧。

在这里您可以看到我用来更改相机模式以捕获 YUYV 并将其转换为 BGR 的代码,我正在寻找替换的,cap.set(cv2.CAP_PROP_CONVERT_RGB, 0)以便我可以捕获 BGR 并将其转换为 YUYV 而无需cap.set(cv2.CAP_PROP_CONVERT_RGB, 0)(因为它是可选的捕获设置并且 Windows DirectShow 会忽略此标志)

这是显示帧内容的调试器输出:

链接到屏幕截图

我试图理解 YUYV 格式,但它只有 2 个通道,下采样过程相当复杂。我已经检查了 YUYV 到 BGR 的转换方法,但我找不到数学转换方法(解决方案通常使用命令行中的 ffmpeg 实用程序,但我认为我需要使用 numpy 数组进行数学运算)