HSV输出问题"/>
cvtvolor()关于HSV输出问题
src使用imread读入,
Imgproc.cvtColor(src,imgHsv, Imgproc.COLOR_RGB2HSV);
然后遍历输出imgHsv的值,发现H-S-V均是61-146-196与135-203-216
由于H是0-180度,61 * 2=121,146/255≈57,196/255≈77,HSV就是(121,57,77)与原图可以对应。
但是下一组的135 * 2=270,严重不符。SV倒是符合,暂时不知道原因。
打算自己计算HSV而不是用函数、
Mat imgHsv=new Mat();src.copyTo(imgHsv);int row=imgHsv.rows();
int col=imgHsv.cols();
double[] data;
for (int i=0;i<row;i++){for (int j = 0; j <col; j++) {data=imgHsv.get(i,j);double B=data[0];double G=data[1];double R=data[2];double S=0,H=0;double V=Math.max(Math.max(B,G),R);double minRGB=Math.min(Math.min(B,G),R);if(0!=V){S=(V-minRGB)/V;}else S=0;if(V==R) H=60*(G-B)/(V-minRGB);else if(V==G) H=120+60*(B-R)/(V-minRGB);else if(V==B) H=240+60*(R-G)/(V-minRGB);else if(R==G&&G==R) H=0;if(H<0) H+=360;V/=255;System.out.println(H+"“”“-"+S+"-"+V);}}
更多推荐
cvtvolor()关于HSV输出问题
发布评论