我有一个图像,我想创建一个平滑的边界。这通常是在Photoshop中通过图像边界周围的涂抹工具完成的,但我想通过代码来完成。
我想要的是:
我的图片背景是alpha。
我有两个解决方案:
获取所有边界像素区域并仅对这些区域应用高斯模糊。我不知道如何只提取边界像素。
再次,获取所有边界像素并在每个像素处应用alpha。例如,我在图像周围采用10px边界,然后每个像素应用10%增加alpha,因此效果将是10%alpha,20%.... 100%然后是可见区域。
感谢任何帮助。我正试图在iPhone上使用OpenCV
答案 0 :(得分:1)
您正在寻找的是“抗锯齿”。通常,这样做的方法是使用一些内置技术,例如渲染时的子采样(参见OpenCV docs for anti-aliasing:http://docs.opencv.org/modules/core/doc/drawing_functions.html)。或者以更大的比例渲染图像(比如说大小的4倍),然后进行下采样(缩小图像)。
答案 1 :(得分:1)
你需要的只是简单的模糊(高斯或任何其他)。并且您不需要仅提取边界像素,因为平坦区域的平滑是相同的平坦区域,因此您将仅在边界上看到平滑。
答案 2 :(得分:0)
高斯模糊将成功。您可以从此处了解详情:http://docs.opencv.org/doc/tutorials/imgproc/gausian_median_blur_bilateral_filter/gausian_median_blur_bilateral_filter.html
所有这些都是平滑的常用方法。