应用傅里叶逆变换OpenCV后构建图像
constructing image after applying inverse fourier transform opencv
我正在尝试按照链接 http://www.docs.opencv.org/2.4/doc/tutorials/core/discrete_fourier_transform/discrete_fourier_transform.html 中的代码将傅里叶变换应用于图像,在此之后,我尝试删除傅里叶频谱中可见的噪声分量作为水平线和垂直线,如下面的链接所示的图像:(http://www.imagemagick.org/Usage/fourier/twigs_spectrum.png) - 光谱图像
现在,在将光谱中的噪声像素位置归零后,我只想看看原始图像现在是如何变化的。我已经对其应用了反向DFT,并重建了图像,但图像是空图像。 这是我的代码:
Mat magI_copy;
magI.copyTo(magI_copy);
//magI.convertTo(magI_copy, CV_8U);
//imshow("image", magI_copy); waitKey();
for (int i = 0; i < 86; i++){
for (int j = 127; j < 130;j++){
magI_copy.at<float>(i, j) = 0;
}
}
for (int i = 171; i < magI_copy.rows; i++){
for (int j = 127; j < 130; j++){
magI_copy.at<float>(i, j) = 0;
}
}
for (int i = 126; i < 131; i++){
for (int j = 0; j < 87; j++){
magI_copy.at<float>(i, j) = 0;
}
}
for (int i = 126; i < 131; i++){
for (int j = 170; j < magI_copy.cols; j++){
magI_copy.at<float>(i, j) = 0;
}
}
///////////Inverse Transform
cv::Mat inverseTransform;
cv::dft(magI_copy, inverseTransform, cv::DFT_INVERSE | cv::DFT_REAL_OUTPUT);
normalize(inverseTransform, inverseTransform, 0, 1, CV_MINMAX);
Mat finalimage;
inverseTransform.convertTo(finalimage, CV_8U);
逆 DFT 是你在这里所需要的。这是您问题的答案。
相关文章:
- C++为构建时间获取QDateTime的可靠方法
- 无法在 CLion 中构建 C++ 项目
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 函数向量_指针有不同的原型,我可以构建一个吗
- 如何使用ndk-build.cmd构建Android.so文件
- 如何使用OpenCV将RBG图像转换为HSV,并将H、S和V值保存为C++中的3个独立图像
- OpenCV EqualizeHist()从彩色图像创建黑白图像
- 将"打开的CV图像"中的"颜色"转换为整数格式
- libssh 的函数在构建 libssh 时无法在 Qt 和 cmake 错误中找到
- 使用cmake从源代码构建MySQL连接器/C++失败(与以前的声明冲突)
- 平均图像时图像损坏
- VSCode-有一个红色下划线,但程序构建和运行正确,并且出现配音错误
- 如何使用OpenCV从已知的3D点云(在没有I的情况下构建)估计新图像I的相机姿态矩阵
- 如何使用opencv从矩阵向量中构建图像
- OpenCV使用像素指针构建图像
- 应用傅里叶逆变换OpenCV后构建图像
- 将数据坐标构建为像素坐标的图像
- 在OpenCV中从Mat对象构建图像
- Xcode 4中的命令行工具构建版本,在构建可执行文件中包含图像存在问题
- 从灰度图像构建颜色条