import cv2
from skimage.color import rgb2hsv
cv_HSV = cv2.cvtColor(img_RGB, cv2.COLOR_RGB2HSV)
skimage_HSV = np.array(rgb2hsv(img_RGB) * 255).astype(np.uint8)
如上面的代码所示,cv2.cvtColor使用cv2.COLOR_RGB2HSV是将一个uint8类型的数据img_RGB转换成cv_HSV,此时cv_HSV的数据也是uint8。
而skimage中的rgb2hsv,他是首先将数据转成float64,然后再转成hsv,这时hsv的数据范围从0-255压缩至0-1,数据类型为float64。此后为了将其转成与cv2中的结果类型,就需要转变类型。
在实际操作过程中,这两种方式还是会导致cv_HSV和skimage_HSV的结果有稍微的不同(也就是数值会相差1-2)。