在使用 OpenCV4Android 的应用程序中,如何确定相机拍摄的是 8 位图像还是 32 位图像?

In an app using OpenCV4Android, how to find out if the camera is taking 8-bit image or 32-bit image?

在 OpenCV HSV 图像中,Hue 的比例取决于图像的类型。来自

For HSV images it depends on the image type (see OpenCV doc):

8 bit images: H in [0, 180], S,V in [0, 255]

32bit images: H in [0, 360] ,S,V in [0,1]

我有两个问题:

  1. 我如何知道相机检测到的是哪种类型的图像或帧(无论是 8 位还是 32 位),例如我如何知道颜色斑点检测示例应用程序中的 this class

  2. 有没有办法强制相机拍摄32位图像(因为我很想要第二个比例尺,如果没有办法,我将不得不想办法转换第一个缩放到第二个,因为 Android's Color.HSVToColor method 遵循第二个比例)?

1) 它使用 CvType.CV_8U 所以这意味着 8 位无符号。

2) 可能不是,您必须深入研究实际控制相机并抓取帧的代码部分才能找到答案。但是,您可以使用 convertTo 函数将 8 位图像简单地转换为 32 位图像。