2013-05-06 46 views
0

我想使用Emgu將一個具有圓形(未填充)形狀的內核進行卷積處理。 我發現了適合我需求的ConvolutionKernelF(Gaussian Noise in emgucv)。在Emgu中繪製一個圈ConvolutionKernelF

有沒有人知道我可以在這個內核中畫一個圓圈?沒有抗鋸齒就是。 另外一個簡單的方法是使用圓形內核進行卷積。

我嘗試這樣做:

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[*,*]' 

此外,它一點兒也不顯得非常有效。

乾杯,

湯姆

回答

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));