Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/147.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ OpenCV如何平滑边界_C++_Ios_Iphone_Opencv_Image Processing - Fatal编程技术网

C++ OpenCV如何平滑边界

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

我有一个图像,我想创建一个平滑的边界。这通常是在photoshop中通过涂抹工具在图像边界周围完成的,但我希望通过代码来完成

我想要的是:

我的图像背景是alpha

我有两个解决方案:

  • 将所有边界像素应用于该区域,并仅对这些区域应用高斯模糊。我不知道如何只提取边界像素

  • 同样,获取所有边界像素并在每个像素处应用alpha。例如,我在图像周围取10px的边界,然后每个像素增加10%的alpha,因此效果将是10%alpha,20%…100%,然后是可见区域


  • 感谢您的帮助。我正试图用OpenCV在iPhone上实现这一点,你需要的是“抗锯齿”。通常,执行此操作的方法是使用一些内置技术,例如在渲染时进行子采样(请参阅OpenCV文档中的抗锯齿:)。或者以更大的比例渲染图像(例如4倍大小),然后向下采样(向下缩放图像)。

    您所需要的只是简单的模糊(高斯或任何其他)。而且你不需要只提取边界像素,因为平坦区域的平滑是相同的平坦区域,所以你只能在边界上看到平滑。

    高斯模糊就可以了。您可以从这里了解更多信息:


    所有这些都是常用的平滑方法

    是的,我只希望平滑边界。。!适当的平滑将只影响边界。这就是基于内核的处理的优点(在一个非常方便的波形意义上):它不会影响常量像素的大连接字段。用一维水平高斯核卷积,然后用一维垂直高斯核卷积,就这样了。您可能可以像编写回复一样快速地编写代码。