zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Opencv学习笔记 离散傅立叶变换(DFT)简介及用于图片方向校正

Opencv笔记学习 图片 简介 用于 变换 方向
2023-09-14 09:01:35 时间

        离散傅里叶变换(Discrete Fourier Transform,缩写为DFT),是傅里叶变换在时域和频域上都呈离散的形式,将信号的时域采样变换为其DTFT的频域采样。在形式上,变换两端(时域和频域上)的序列是有限长的,而实际上这两组序列都应当被认为是离散周期信号的主值序列。即使对有限长的离散信号作DFT,也应当将其看作其周期延拓的变换。在实际应用中通常采用快速傅里叶变换计算DFT。        

        快速傅里叶变换 (fast Fourier transform), 即利用计算机计算离散傅里叶变换(DFT)的高效、快速计算方法的统称,简称FFT。快速傅里叶变换是1965年由J.W.库利和T.W.图基提出的。采用这种算法能使计算机计算离散傅里叶变换所需要的乘法次数大为减少,特别是被变换的抽样点数N越多,FFT算法计算量的节省就越显著。

        代码如下:

string filename = @"C:\\Users\\Desktop\\imageTextN.png";
//    string filename = "imageTextR.png";
Mat image = Cv2.ImRead(filename, ImreadModes.Grayscale);
Mat imageCopy = image.Clone();

// 将输入图像扩大到最佳尺寸
Mat padded = new Mat();
int m = Cv2.GetOptimalDFTSize(image.Rows);
int n = Cv2.GetOptimalDFTSize(image.Cols);
Cv2.CopyMakeBorder(image, padded, 0, m - image.Rows, 0, n - image.Cols, BorderTypes.Constant,