首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >傅里叶变换+ emgucv

傅里叶变换+ emgucv
EN

Stack Overflow用户
提问于 2011-10-03 04:03:39
回答 1查看 4.3K关注 0票数 3

谁能告诉我这段代码的问题是什么?

基本上,我尝试计算图像的dft,并将其显示为屏幕上的图像。

代码语言:javascript
复制
Image<Gray, float> GreyOriginalImage = new Image<Gray, float>(strFileName);
Matrix<float> imageMat = new Matrix<float>( CvInvoke.cvGetOptimalDFTSize( GreyOriginalImage.Rows ) , CvInvoke.cvGetOptimalDFTSize( GreyOriginalImage.Cols ) );

GreyOriginalImage.CopyTo( imageMat.GetSubRect( GreyOriginalImage.ROI ) );
CvInvoke.cvDFT( imageMat , imageMat , Emgu.CV.CvEnum.CV_DXT.CV_DXT_FORWARD , imageMat.Rows );

GreyFourierImage = new Image<Gray, float>( imageMat.Rows , imageMat.Cols );
imageMat.CopyTo( GreyFourierImage );

ImageBox2.Image = GreyFourierImage;
imageBox2.Show();

问题是代码在执行时挂起,没有图像显示……

我正在使用带有emgu cv的Visual studio 2010。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-05 16:08:58

我已经检查过你的代码并进行了调试,问题行在这里:

代码语言:javascript
复制
imageMat.CopyTo( GreyFourierImage );

你正在尝试将一个浮点数组的imageMat复制到一个浮点数,*我相信你能弄清楚这是不起作用的,这就是程序挂起的原因。

以下是从cvDFT中拆分虚部和实部的代码:

代码语言:javascript
复制
Image<Gray, float> image = new Image<Gray, float>(open.FileName);
IntPtr complexImage = CvInvoke.cvCreateImage(image.Size, Emgu.CV.CvEnum.IPL_DEPTH.IPL_DEPTH_32F, 2);

CvInvoke.cvSetZero(complexImage);  // Initialize all elements to Zero
CvInvoke.cvSetImageCOI(complexImage, 1);
CvInvoke.cvCopy(image, complexImage, IntPtr.Zero);
CvInvoke.cvSetImageCOI(complexImage, 0);

Matrix<float> dft = new Matrix<float>(image.Rows, image.Cols, 2);
CvInvoke.cvDFT(complexImage, dft, Emgu.CV.CvEnum.CV_DXT.CV_DXT_FORWARD, 0);

//The Real part of the Fourier Transform
Matrix<float> outReal = new Matrix<float>(image.Size);
//The imaginary part of the Fourier Transform
Matrix<float> outIm = new Matrix<float>(image.Size);
CvInvoke.cvSplit(dft, outReal, outIm, IntPtr.Zero, IntPtr.Zero);

//Show The Data       
CvInvoke.cvShowImage("Real", outReal);
CvInvoke.cvShowImage("Imaginary ", outIm);

干杯,

克里斯

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7628864

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档