我必须使用opencv开发android代码,相当于MATLAB的代码。 在此我要读的图像,并将其转换为HSV,我已经用这个做:转换Opencv hsv相当于Matlab Hsv
Imgproc.cvtColor(temp, hsv , Imgproc.COLOR_RGB2HSV);
,当我遍历中的色调,其中0-255范围返回的像素的每个像素值在Matlab中它返回的范围是0-1,我不知道如何为它写一个等效的代码。 我是一名初学者,我不太了解图像处理。
我必须使用opencv开发android代码,相当于MATLAB的代码。 在此我要读的图像,并将其转换为HSV,我已经用这个做:转换Opencv hsv相当于Matlab Hsv
Imgproc.cvtColor(temp, hsv , Imgproc.COLOR_RGB2HSV);
,当我遍历中的色调,其中0-255范围返回的像素的每个像素值在Matlab中它返回的范围是0-1,我不知道如何为它写一个等效的代码。 我是一名初学者,我不太了解图像处理。
RGB图像的值范围很明显在[0,255]。对于HSV图像这取决于图像类型(见OpenCV doc):
所以,在转换到HSV
Imgproc.cvtColor(temp, hsv, Imgproc.COLOR_RGB2HSV);
之后你需要缩放h的nd 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);
你能帮助我如何分割和合并渠道,请分享一个参考链接,如果你有任何。非常感谢。 – AnonymousDev
@Varun更新了答案。我不完全确定,因为我不用Java编程,但应该可以正常工作。请告诉我。 – Miki
非常感谢这个作品.. !!! – AnonymousDev