转换opencv的HSV相当于Matlab的胸苷 [英] Convert Opencv hsv equivalent to Matlab Hsv
问题描述
我已经使用OpenCV中,$ C $相当于C到MATLAB开发Android code。
在这我要读图像并将其转换为HSV,我已经这样做了使用:
I have to develop android code using opencv,code equivalent to MATLAB. In that I have to read an image and convert it to HSV and I have done this using :
Imgproc.cvtColor(temp, hsv , Imgproc.COLOR_RGB2HSV);
和当我遍历在顺化,其中在Matlab返回在0-1范围内,我不知道如何写一个相当于code为它的0-255范围返回像素的每个像素值。
我是一个beginner.I不知道很多有关的图像处理。
and when I am iterating over each pixels value of pixel returned in range of 0-255 of Hue ,where in Matlab it returns in range of 0-1 , I dont know how to write an equivalent code for it . I am a beginner.I dont know much about image processing.
推荐答案
RGB图像的值的范围是,明明[0,255]。对于HSV图像这取决于图像类型(见 OpenCV的文档 ):
The range of values of RGB images is, obviously in [0, 255]. For HSV images it depends on the image type (see OpenCV doc):
- 8位图片:在H [0,180],S,V在[0,255]
- 32位图片:在H [0,360],S,V在[0,1]
- 8 bit images: H in [0, 180], S,V in [0, 255]
- 32bit images: H in [0, 360] ,S,V in [0,1]
所以,以后你转换为HSV
So, after you convert to HSV
Imgproc.cvtColor(temp, hsv, Imgproc.COLOR_RGB2HSV);
您需要以不同的缩放H和S,V值。您可以使用<一个href=\"http://docs.opencv.org/java/org/opencv/core/Core.html#split(org.opencv.core.Mat,java.util.List)\"相对=nofollow>分裂和<一个href=\"http://docs.opencv.org/java/org/opencv/core/Core.html#merge(java.util.List,org.opencv.core.Mat)\"相对=nofollow>合并以获得不同的信道矩阵的计算方法,并应用正确的缩放。
you need to scale the H and S,V values differently. You can use split and merge to get the different channels matrice, and apply correct scaling.
请注意,OpenCV的商店RGB图像作为BGR,所以你可能需要 COLOR_BGR2HSV
。
Note that OpenCV stores RGB images as BGR, so you probably need COLOR_BGR2HSV
.
您可以拆分和合并,如:
You can split and merge like:
List<Mat> planes = new ArrayList<Mat>(3);
Core.split(hsv, planes);
// Scale each single plane
Core.merge(planes , hsv);
这篇关于转换opencv的HSV相当于Matlab的胸苷的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!