gpt4 book ai didi

java - 将 Opencv hsv 转换为等同于 Matlab Hsv

转载 作者:太空宇宙 更新时间:2023-11-03 13:17:56 26 4
gpt4 key购买 nike

我必须使用 opencv 开发 android 代码,代码相当于 MATLAB。因为我必须读取图像并将其转换为 HSV,我已经使用:

Imgproc.cvtColor(temp, hsv   , Imgproc.COLOR_RGB2HSV);

当我遍历 Hue 的 0-255 范围内返回的像素的每个像素值时,在 Matlab 中它返回 0-1 的范围内,我不知道如何为它编写等效代码。我是初学者,对图像处理不是很了解。

最佳答案

显然,RGB 图像的取值范围是 [0, 255]。对于 HSV 图像,它取决于图像类型(参见 OpenCV doc):

  • 8 位图像:H 在 [0, 180] 中,S,V 在 [0, 255] 中
  • 32bit 图片:H in [0, 360] ,S,V in [0,1]

所以,在你转换为 HSV 之后

Imgproc.cvtColor(temp, hsv, Imgproc.COLOR_RGB2HSV);

您需要以不同方式缩放 H 和 S,V 值。您可以使用 splitmerge获取不同的 channel 矩阵,并应用正确的缩放比例。

请注意,OpenCV 将 RGB 图像存储为 BGR,因此您可能需要 COLOR_BGR2HSV


您可以像这样拆分和合并:

List<Mat> planes = new ArrayList<Mat>(3);
Core.split(hsv, planes);
// Scale each single plane
Core.merge(planes , hsv);

关于java - 将 Opencv hsv 转换为等同于 Matlab Hsv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32932759/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com