AForge.NET框架提供了一组来自数学形态学的过滤器。所有筛选器都可以应用为使用默认结构元素,也可以应用自定义指定的结构元素。
在扩展中,滤波器将周围像素的最大值分配给结果图像的每个像素。应该处理的周围像素由结构化元素指定:1-处理邻居,-1 -跳过它。
该过滤器特别适用于二进制图像处理,它允许生长单独的对象或连接对象。
对于使用3x3结构元素处理图像,可以进行不同的优化,如Dilatation3x3和BinaryDilatation3x3。
该滤波器接受8和16 bpp灰度图像以及24和48 bpp彩色图像进行处理。
这是3*3结构元素的代码:
Dilatation filter = new Dilatation( );
filter.Apply( image );但是我需要使用5*5结构元素来实现这段代码。如何将此代码修改为5*5结构元素?
发布于 2016-04-27 17:31:56
我不知道AForge.NET框架,但是维度5x5的侵蚀/膨胀等于维度3x3的两次侵蚀/膨胀。这就是在库中所支持的六边形结构元素所做的工作。
因此,在您的情况下,您只需应用两倍的操作。根据你的守则,它将是:
Dilatation filter = new Dilatation( );
filter.Apply( image );
filter.Apply( image );发布于 2016-04-27 17:13:49
您可以构造一个扩展过滤器,并将其作为规范的这里传递给它一个自定义结构元素。您想要的结构元素是一个具有以下结构的二维Int数组:
new short[5,5]{
{ 1,1,1,1,1 },
{ 1,1,1,1,1 },
{ 1,1,1,1,1 },
{ 1,1,1,1,1 },
{ 1,1,1,1,1 },
}https://stackoverflow.com/questions/36896018
复制相似问题