如何计算颜色边界?

时间:2018-03-18 00:25:52

标签: c++ ios objective-c opencv objective-c++

我想应用某种颜色隔离,就像你在这张图片中看到的那样:

img

我已经写了一些应该能够通过inRange() call完成这项工作的行:

cv::inRange(hsvMat, lower_value, upper_value, colorMask);

但是我不确定如何设置上部& Scalar bounds的较低值就像我正在做的那样:

cv::Scalar lower_value(X, X, X);
cv::Scalar upper_value(Y, Y, Y);
  

绿色圆圈的值为r: 109, g: 138, b: 54,但如何计算给定阈值(百分比值)的上限和下限?

+(UIImage *)ConvertImage:(UIImage *)image {
    cv::Mat rawImage;
    UIImageToMat(image, rawImage);

    cv::Mat bgrMat;
    cv::cvtColor(rawImage, bgrMat, CV_BGRA2BGR);

    cv::Mat hsvMat;
    cv::cvtColor(bgrMat, hsvMat, CV_BGR2HSV);

    cv::Mat colorMask;

    cv::Scalar lower_value(X, X, X);
    cv::Scalar upper_value(Y, Y, Y);

    cv::inRange(hsvMat, lower_value, upper_value, colorMask);

    cv::Mat output;
    bgrMat.copyTo(output, colorMask);

    UIImage *ret = MatToUIImage(output);
    return ret;
}

非常感谢任何帮助如何实现/特别是如何计算这些值!

0 个答案:

没有答案