我必须用opencv开发android代码,代码相当于MATLAB。因为我必须读取一个图像并将其转换为HSV,我使用以下方法完成了这一工作:
Imgproc.cvtColor(temp, hsv , Imgproc.COLOR_RGB2HSV);当我迭代每个像素值时,返回的像素值在色调的0-255范围内,在Matlab中返回范围为0-1,我不知道如何为它编写等价的代码。我是个初学者,我对图像处理不太了解。
发布于 2015-10-04 12:37:43
RGB图像的值范围明显为0,255。对于HSV图像,它取决于图像类型(参见OpenCV文档):
所以,在你转换到HSV之后
Imgproc.cvtColor(temp, hsv, Imgproc.COLOR_RGB2HSV);你需要标度H和S,V值不同。您可以使用拆分和合并来获取不同的通道矩阵,并进行正确的缩放。
请注意,OpenCV将RGB图像存储为BGR,因此您可能需要COLOR_BGR2HSV。
您可以拆分和合并如下:
List<Mat> planes = new ArrayList<Mat>(3);
Core.split(hsv, planes);
// Scale each single plane
Core.merge(planes , hsv);发布于 2015-10-04 11:34:11
255是1.0,128是0.5,依此类推。将n/255除以得到Matlab的HSV值
https://stackoverflow.com/questions/32932759
复制相似问题