2013-05-06 3 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); 

Unfortunatly, третье заявление дает мне:

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

Кроме того, does'nt кажется очень эффективным.

Приветствия,

Том

ответ

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