2013-03-29 39 views
1

我想通過打開cv來檢測iOS中的皮膚。我的代碼在下面提到。打開cv iOS的HSV範圍

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中,開放式簡歷有不同的HSV範圍。對於android我的下限和上限是可以的,但是iOS不一樣。

如果有人遇到這種問題,請幫我解決。

在此先感謝。

回答

3

我已經通過命中和審判整理了問題。正常HSV範圍如下所述。

色調:0 - 360(及其的角度) 飽和度:0 - 100(顏色的強度) 值:0 - 100(亮度)

在IOS它具有以下範圍內, 色相:0 - 180(及其的角度) 飽和度:0 - 255(顏色的強度) 值:0 - 255(亮度)

Android中

色調:0 - 360(及其一個角度) 飽和度:0 - 255(顏色強度) Value:0 - 255(亮度)

另一個你需要注意的是iOS OpenCV中的顏色方案是BGR而不是RGB。所以Hue部分將覆蓋0-60度範圍內的藍色而不是紅色。您必須相應地更改iOS的Hue值。

希望使用colorWithHue當範圍似乎colorWithHue這可能是別人:)

+0

在我最好的知識有用:0.0 - 1.0飽和度:0.0 - 1.0亮度:0.0 - 1.0阿爾法; 0.0 - 1.0。低於0.0的任何東西都會轉換爲0.0,高於1.0的任何東西都會轉換爲1.0。我使用的是iOS 10.3.2,Xcode 8.3.3硬件:Mac mini 10.12.5,iPad mini A1489。 – matrix3003