0

我想使用 Emgu 将我的图像与具有圆形(未填充)形状的内核进行卷积。我找到了适合我需要的 ConvolutionKernelF(emgucv 中的高斯噪声)。

有人知道我如何在这个内核中画一个圆圈吗?没有抗锯齿就是这样。另一种简单的方法使用圆形内核进行卷积也值得赞赏。

我试过这个:

Image<Gray, float> kernel = new Image<Gray, float>(radius * 2 + 1, radius * 2 + 1);
kernel.Draw(new CircleF(new Point(radius, radius), radius), new Gray(1.0), 1);
ConvolutionKernelF ckernel = new ConvolutionKernelF(kernel.Data); // error
kernel.CopyTo(ckernel);

不幸的是,第三个陈述给了我:

Argument 1: cannot convert from 'float[*,*,*]' to 'float[*,*]'

此外,它似乎效率不高。

干杯,

汤姆

4

1 回答 1

0

好的,我是这样做的:

Image<Gray, float> kernel = new Image<Gray, float>(radius * 2 + 1, radius * 2 + 1);
kernel.Draw(new CircleF(new Point(radius, radius), radius), new Gray(1.0), 1);
CvInvoke.cvFilter2D(A, B, kernel, new Point(-1, -1));
于 2013-05-07T10:50:34.667 回答