cvtvolor()关于HSV输出问题

编程入门 行业动态 更新时间:2024-10-28 05:24:48

cvtvolor()关于<a href=https://www.elefans.com/category/jswz/34/1729659.html style=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输出问题

本文发布于:2023-07-28 18:08:36,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1270669.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:cvtvolor   HSV

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!