C++ OpenCV如何平滑边界
我有一个图像,我想创建一个平滑的边界。这通常是在photoshop中通过涂抹工具在图像边界周围完成的,但我希望通过代码来完成 我想要的是: 我的图像背景是alpha 我有两个解决方案:C++ OpenCV如何平滑边界,c++,ios,iphone,opencv,image-processing,C++,Ios,Iphone,Opencv,Image Processing,我有一个图像,我想创建一个平滑的边界。这通常是在photoshop中通过涂抹工具在图像边界周围完成的,但我希望通过代码来完成 我想要的是: 我的图像背景是alpha 我有两个解决方案: 将所有边界像素应用于该区域,并仅对这些区域应用高斯模糊。我不知道如何只提取边界像素 同样,获取所有边界像素并在每个像素处应用alpha。例如,我在图像周围取10px的边界,然后每个像素增加10%的alpha,因此效果将是10%alpha,20%…100%,然后是可见区域 感谢您的帮助。我正试图用OpenCV在i
感谢您的帮助。我正试图用OpenCV在iPhone上实现这一点,你需要的是“抗锯齿”。通常,执行此操作的方法是使用一些内置技术,例如在渲染时进行子采样(请参阅OpenCV文档中的抗锯齿:)。或者以更大的比例渲染图像(例如4倍大小),然后向下采样(向下缩放图像)。您所需要的只是简单的模糊(高斯或任何其他)。而且你不需要只提取边界像素,因为平坦区域的平滑是相同的平坦区域,所以你只能在边界上看到平滑。高斯模糊就可以了。您可以从这里了解更多信息:
所有这些都是常用的平滑方法 是的,我只希望平滑边界。。!适当的平滑将只影响边界。这就是基于内核的处理的优点(在一个非常方便的波形意义上):它不会影响常量像素的大连接字段。用一维水平高斯核卷积,然后用一维垂直高斯核卷积,就这样了。您可能可以像编写回复一样快速地编写代码。