我想应用某种颜色隔离,就像你在这张图片中看到的那样:
我已经写了一些应该能够通过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;
}
非常感谢任何帮助如何实现/特别是如何计算这些值!