Opencv 将所有图像转换为RGB进行传输

Opencv 将所有图像转换为RGB进行传输,opencv,Opencv,我正在使用JNA访问openCV,在我的应用程序中,我有一个函数,它将RGB值的数组返回给java进行显示,如果图像实际使用RGB颜色空间,这很好,但是如果图像是hsv或二进制图像,它会产生奇怪的行为瑕疵。我如何检测它使用的颜色空间,并在传输之前将所有内容转换为RGB并将其转换为RGB若它们不是?您无法通过直接检查三个缓冲区来检测图像是否为rgb。在将其提供给其他进程或应用程序之前,您需要知道它的格式。 我建议您决定对所有进程间缓冲区使用rgb,并确保在每个原始进程中将所有图像转换为rgb 在O

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

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

在Opencv中,使用“CvtColor”将本机bgr转换为rgb。从其他应用程序-如果它们不支持图像转换-然后你可以使用cvconvert将它们全部转换为rgb,如果你需要的话

您还可以使用“合并”和“混合通道”来制作简单的rgb到bgr,而无需任何繁琐和到位

在2.2中有一个更好的rgb到hsv功能,它使用所有256个色调值。它比旧的好


这里的文档:

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

在Opencv中,使用“CvtColor”将本机bgr转换为rgb。从其他应用程序-如果它们不支持图像转换-然后你可以使用cvconvert将它们全部转换为rgb,如果你需要的话

您还可以使用“合并”和“混合通道”来制作简单的rgb到bgr,而无需任何繁琐和到位

在2.2中有一个更好的rgb到hsv功能,它使用所有256个色调值。它比旧的好


这里的文档:

我的问题是图像以rgb开头,但用户操作会将它们转换为hsv到二进制等。因此我无法跟踪它,atm,是否有某种标志来告诉methis是hsv这是二进制您可以自己跟踪它。有一组变量,比如inRGB、inHSV等。每当用户将其转换为hsv时,将inHSV设置为true。我的问题是图像以rgb开始,但用户操作将其转换为hsv到二进制等。因此我无法跟踪它atm,是否有某种标志来告诉methis是hsv这是二进制您可以自己跟踪它。有一组变量,如inRGB、inHSV等。每当用户将其转换为hsv时,将inHSV设置为true。