2016-08-18 6 views
0

Я программирую в WPF (C#), используя emgucv-windesktop 3.1.0.2282. Я новичок в обработке изображений, и я хочу использовать FFT и DFT в своем приложении для обработки изображений. Вот мой код:DFT в EmguCV не отображается

Image<Gray, System.Single> _image = new Image<Gray, System.Single>(
    Util.ImageSourceToBitmap(img1.Source)); 

UMat DFTimage = new UMat(); 
UMat Original = new UMat(); 

CvInvoke.Dft(_image.ToUMat(), DFTimage, Emgu.CV.CvEnum.DxtType.Forward , -1); 
CvInvoke.Dft(DFTimage, Original, Emgu.CV.CvEnum.DxtType.Inverse, -1); 

img2.Source = Util.BitmapToImageSource(Original.Bitmap); 
img3.Source = Util.BitmapToImageSource(DFTimage.Bitmap); 

Я использовал человеческое лицо, цветок, и т.д., но что я вижу в Img2 и img3 (они расположены элементы управления изображением) черные и пустые изображения. Что не так в моем коде?

UPDATE 1:

Теперь я использую этот код:

Bitmap bm = Util.ImageSourceToBitmap(img1.Source); 

Image<Gray, Single> image = new Image<Gray, Single>(bm); 
UMat DFTimage = new UMat(image.Size, Emgu.CV.CvEnum.DepthType.Cv32F, 2); 
UMat Original = new UMat(image.Size, Emgu.CV.CvEnum.DepthType.Cv32F, 2); 


CvInvoke.Dft(image, DFTimage, Emgu.CV.CvEnum.DxtType.Forward, image.Rows); 
CvInvoke.Dft(Original, DFTimage, Emgu.CV.CvEnum.DxtType.Inverse, image.Rows); 


Util.BitmapToImageSource(Original.Bitmap); 

Теперь я получаю System.Exception исключение, показав свой прообраз:

необработанное исключение типа «System.Exception» произошел в Emgu.CV.World.dll

Дополнительная информация: Неизвестный тип цвета

enter image description here

ответ

0

Попробуйте изменить это:

CvInvoke.Dft(Original, DFTimage, Emgu.CV.CvEnum.DxtType.Inverse, image.Rows); 

к этому:

CvInvoke.Dft(DFTimage, Original, Emgu.CV.CvEnum.DxtType.Inverse, image.Rows);