【问题标题】:Convert All Images to RGB for Transfer将所有图像转换为 RGB 以进行传输
【发布时间】:2011-01-15 00:45:55
【问题描述】:

我正在使用 JNA 访问 openCV,在我的应用程序中,我有一个函数可以将 RGB 值数组返回给 java 以进行显示,如果图像实际上使用 rgb 颜色空间但如果图像是 hsv 或二进制则很好图像它会产生奇怪的行为伪影我如何检测它正在使用的颜色空间并在传输之前将所有内容转换为 rgb,如果它们不是,则将它们转换为 rgb?

【问题讨论】:

    标签: opencv


    【解决方案1】:

    您无法通过直接检查三个缓冲区来检测图像是否为 rgb。在将其提供给其他进程或应用程序之前,您需要知道它的格式。 我建议您决定将 rgb 用于所有进程间缓冲区,并确保所有图像在每个原始进程中都转换为 rgb。

    在 Opencv 中使用“CvtColor”将原生 bgr 转换为 rgb。从其他应用程序 - 如果它们不支持图像转换 - 如果需要,您可以使用 cvconvert 将它们全部转换为 rgb。

    您还可以使用“Merge”和“Mixchannels”来制作简单的 rgb 到 bgr,无需任何大惊小怪和就地。

    在 2.2 中有一个更好的 rgb to hsv 函数,它使用所有 256 个值作为色调。它比旧的更好。

    这里的文档:http://opencv.willowgarage.com/wiki/

    【讨论】:

    • 好吧,我的问题是图像以 rgb 开始,但用户操作将它们转换为 hsv 到二进制等。所以我无法在 atm 跟​​踪它,是否有某种标志可以告诉我这是hsv 这是二进制
    • 您可以自己跟踪。有一组变量,如 inRGB、inHSV 等。每当用户将其转换为 hsv 时,将 inHSV 设置为 true。
    猜你喜欢
    • 2021-08-13
    • 2021-12-17
    • 1970-01-01
    • 2010-12-14
    • 1970-01-01
    • 2015-11-18
    • 1970-01-01
    • 2017-08-02
    • 1970-01-01
    相关资源
    最近更新 更多