2013-05-06 2 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[*,*]' 

또한, 그것은 매우 효율적 보인다 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));