MATLAB rgb2hsv() 与 OpenCV cvtColor()

MATLAB rgb2hsv() vs. OpenCV cvtColor()

有没有其他人注意到 MATLAB 的 rgb2hsv() and OpenCV's cvtColor()(其参数为 CV_BGR2HSV)的输出计算似乎略有不同?

首先,MATLAB 的函数将任何图像输入映射到 [0,1] 区间,而 OpenCV 保持输入的相同区间(即 RGB 中像素在 [0,255] 的图像保持相同的 [0,255] HSV 中的区间)。

但更重要的是,在规范化 cvtColor() 输出时(例如 mat = mat / 255),值并不完全相同。

我在文档中找不到有关他们使用的特定公式的任何信息。谁能阐明这些差异?

对于 OpenCV,公式就在您指向的文档中。对于 Matlab,请看这里 http://www.mathworks.com/matlabcentral/newsreader/view_thread/269237:

Just dive into the code - they gave it to you. Just put the cursor on the function rgb2hsv() in your code and type control-d.