我试图通过open cv检测iOS中的皮肤。我的守则如下所述。
cvCvtColor(&srcIplImage, &hsvIplImage, CV_BGR2HSV);
CvScalar lower = cvScalar(0, 58, 88);
CvScalar upper = cvScalar(25, 173, 229);
cvInRangeS(&hsvIplImage, lower, upper, &srcGrayIplImage);
cvCvtColor(&srcGrayIplImage, &dstIplImage, CV_GRAY2BGR);
在android中,它完美运行并正确检测皮肤。但是在iOS中我得到了非常意外的结果。我认为iOS和Android中的open cv使用了不同的HSV范围。对于Android我的下限和上限都可以,但同样不适用于iOS。
如果有人遇到这类问题,请帮我解决问题。
提前致谢。
答案 0 :(得分:3)
我已通过点击和试用来解决问题。正常的HSV范围如下所述。
Hue:0 - 360.(它的角度) 饱和度:0 - 100(颜色强度) 值:0 - 100(亮度)
在iOS中它具有以下范围, 色调:0 - 180.(它的角度) 饱和度:0 - 255(颜色强度) 值:0 - 255(亮度)
Android中的
Hue:0 - 360.(它的角度) 饱和度:0 - 255(颜色强度) 值:0 - 255(亮度)
另一个你需要注意iOS OpenCV中的配色方案是BGR而不是RGB。所以Hue部分将覆盖0-60度范围内的蓝色而不是红色。您必须相应地更改iOS的Hue值。
希望这对其他人有用:)