微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

opencv 与 skimage 之间的 HSV 色彩空间转换

如何解决opencv 与 skimage 之间的 HSV 色彩空间转换

我在比较 skImage HSV 颜色空间和 OpenCV hsv 颜色空间转换方法间的差异时,发现了以下我不明白的差异:

from PIL import Image
from skimage import io
import numpy as np
import cv2

image = PIL.Image.open("112.jpg")
data = np.asarray(image)                      #Feeding the same  RGB array
y1=cv2.cvtColor(np.float32(data),cv2.COLOR_RGB2HSV)
y1 = y1.astype(np.uint8)
y2= color.rgb2hsv(data)                       #skimage conversion

我使用 PIL 来确保我正在输入 RGB 阵列。在这里,当我打印图像时,我得到了以下输出

y1

>>> array([[[ 52,252],[ 52,...,[ 59,186],186]],[[ 52,187],187]],y2

>>> array([[[0.14465409,0.21031746,0.98823529],[0.14465409,[0.16515152,0.59139785,0.72941176],0.72941176]],[[0.14465409,0.58823529,0.73333333],0.73333333]],
  1. 为什么我的 y1 和 y2 数组不同? skimage 和 opencv 是否遵循相同颜色空间的不同转换公式?

  2. 将 RGB 图像转换为 HSV 图像的标准和最受关注的方法是:“cvtColor(....RGB2HSV) -cv2”还是“rgbtohsv() -skimage”?

先谢谢你:)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。