我必须使用opencv开发android代码,代码相当于MATLAB。 因为我必须阅读图像并将其转换为HSV,我使用以下方法完成了这项工作:
Imgproc.cvtColor(temp, hsv , Imgproc.COLOR_RGB2HSV);
当我迭代在Hue的0-255范围内返回的像素的每个像素值时,在Matlab中它返回的范围为0-1,我不知道如何为它编写等效代码。 我是初学者。我对图像处理知之甚少。
答案 0 :(得分:2)
255是1.0,128是0.5,依此类推。只需将n / 255除以得到Matlab HSV值
答案 1 :(得分:2)
RGB图像的值范围显然在[0,255]中。对于HSV图像,它取决于图像类型(参见OpenCV doc):
因此,转换为HSV后
Imgproc.cvtColor(temp, hsv, Imgproc.COLOR_RGB2HSV);
您需要以不同方式缩放H和S,V值。您可以使用split和merge来获取不同的通道矩阵,并应用正确的缩放。
请注意,OpenCV将RGB图像存储为BGR,因此您可能需要COLOR_BGR2HSV
。
您可以拆分和合并:
List<Mat> planes = new ArrayList<Mat>(3);
Core.split(hsv, planes);
// Scale each single plane
Core.merge(planes , hsv);