C# 对图片的一个方向做傅里叶变换
时间: 2024-04-12 15:31:17 浏览: 124
傅立叶变换的C#实现
4星 · 用户满意度95%
您可以使用C#的Emgu.CV库来实现图像的傅里叶变换。以下是一个简单的示例代码,可以将图像进行傅里叶变换并显示其频谱:
```csharp
using Emgu.CV;
using Emgu.CV.Structure;
// 加载图像
Image<Bgr, byte> image = new Image<Bgr, byte>("image.jpg");
// 将图像转换为灰度图像
Image<Gray, float> grayImage = image.Convert<Gray, float>();
// 执行傅里叶变换
CvInvoke.Dft(grayImage, grayImage, Emgu.CV.CvEnum.DxtType.Forward, 0);
// 计算频谱
CvInvoke.Magnitude(grayImage, grayImage, grayImage);
// 对数转换以便于显示
grayImage = grayImage + 1;
CvInvoke.Log(grayImage, grayImage);
// 归一化以便于显示
CvInvoke.Normalize(grayImage, grayImage, 0, 255, Emgu.CV.CvEnum.NormType.MinMax);
// 显示频谱
CvInvoke.Imshow("频谱", grayImage);
CvInvoke.WaitKey(0);
```
请确保您已经安装了Emgu.CV库,并将图像路径替换为您自己的图像路径。这段代码会将图像进行傅里叶变换,并显示其频谱。
阅读全文