我有两个UIImageViews。第一个是在后台并包含一个图像。第二个是在前景中,它将被使用,以便用户可以追踪他在后台看到的部分内容。
用户跟踪区域后,我希望程序能够用我选择的颜色稍微透明的方式填充该多边形,这样就可以看到多边形下方的图像。
到目前为止,我所做的是能够显示图像并让用户进行跟踪。我可以使用填充填充多边形黑色,但外部区域是白色,而不是透明。这是我的工作:
cv::Mat input = [traceImageView.image CVMat];
cv::Mat output, finalOutput, mask;
cv::Rect rect;
cv::cvtColor(input, output, cv::COLOR_RGB2GRAY);
cv::floodFill(output, cv::Point(0, 0), cv::Scalar(255,0,0,0), &rect, cv::Scalar(0,0,0), cv::Scalar(0,0,0));
traceImageView.image = [UIImage imageWithCVMat:output];
以下是输出结果:
output http://www.mulvaandgipple.com/blob.png
结果是前面的图像完全覆盖了它背后的图像。我希望多边形外面的白色是透明的。关于如何做到这一点的任何想法?