首页 > 其他分享 >OpenCV(cv::mulSpectrums())

OpenCV(cv::mulSpectrums())

时间:2024-08-29 14:27:34浏览次数:3  
标签:Mat mulSpectrums 卷积 频域 OpenCV result cv

目录



cv::mulSpectrums() 是 OpenCV 中用于频域信号处理的一个函数,它可以将两个频域的傅里叶变换结果相乘。通常用于频域滤波、卷积、相关性计算等任务。



1. 函数定义

void cv::mulSpectrums(InputArray a, InputArray b, OutputArray c, int flags, bool conjB = false);

参数:

  • a (输入参数): 第一个输入的频域图像,通常是傅里叶变换后的结果。
  • b (输入参数): 第二个输入的频域图像,通常是傅里叶变换后的结果。
  • c (输出参数): 输出的频域图像,是输入图像 ab 经过频域乘法后的结果。
  • flags: 用来指定乘法的类型。常见的标志包括:
    • cv::DFT_ROWS: 仅在每一行上执行傅里叶变换,而不是整个二维图像。
    • 0: 在整个频域上进行乘法。
  • conjB: 如果设置为 true,则对 b 的频谱取共轭(conjugate)后再与 a 相乘。该选项通常用于计算互相关性或卷积。


2. 工作原理

  1. 频域相乘cv::mulSpectrums() 在频域内对两个傅里叶变换的结果进行逐点相乘。与时域卷积相对应,频域内的乘法等效于时域内的卷积。

  2. 共轭操作conjB 参数控制是否对 b 的频谱取共轭,这个选项在实现交叉相关(cross-correlation)时很有用。交叉相关是用来检测两个信号之间的相似性。

  3. 卷积和相关性

    • conjB = false 时,执行的是频域乘法,这与时域的卷积等价。
    • conjB = true 时,执行的是频域交叉相关,这与时域的相关性计算等价。


3. 示例

#include <opencv2/opencv.hpp>
using namespace cv;

int main() {
    // 读取灰度图像
    Mat img1 = imread("image1.jpg", IMREAD_GRAYSCALE);
    Mat img2 = imread("image2.jpg", IMREAD_GRAYSCALE);
    
    // 将图像转换为频域
    Mat planes1[] = { Mat_<float>(img1), Mat::zeros(img1.size(), CV_32F) };
    Mat planes2[] = { Mat_<float>(img2), Mat::zeros(img2.size(), CV_32F) };
    Mat complexI1, complexI2;
    
    merge(planes1, 2, complexI1);
    merge(planes2, 2, complexI2);
    
    dft(complexI1, complexI1);
    dft(complexI2, complexI2);
    
    // 频域乘法(不取共轭)
    Mat result;
    mulSpectrums(complexI1, complexI2, result, 0, false);
    
    // 逆傅里叶变换回到时域
    idft(result, result, DFT_SCALE | DFT_REAL_OUTPUT);
    
    // 显示结果
    normalize(result, result, 0, 1, NORM_MINMAX);
    imshow("Result", result);
    waitKey();
    
    return 0;
}


4. 典型应用

  • 卷积:时域的卷积可以通过频域乘法来加速,特别是在处理大图像时。
  • 交叉相关性:用于检测两个图像或信号的相似性,通常在模板匹配中使用。
  • 频域滤波:可以在频域内实现滤波操作,如高通、低通、带通滤波器等。


5. 总结

cv::mulSpectrums() 是一个强大的工具,它将复杂频域信号相乘,广泛应用于图像卷积、滤波、交叉相关等任务。通过使用傅里叶变换,频域内的乘法可以显著加速卷积等操作。



标签:Mat,mulSpectrums,卷积,频域,OpenCV,result,cv
From: https://www.cnblogs.com/keye/p/18386597

相关文章

  • OpenCV(cv::idft())
    目录1.函数2.示例3.应用场景4.注意事项5.总结cv::idft()是OpenCV中用于计算逆离散傅里叶变换(IDFT)的函数,它将频域的数据转换回时域。它常与cv::dft()配合使用,例如在进行频域滤波后,需要使用cv::idft()将处理后的数据转换回图像的空间域。1.函数voidcv::idft(......
  • OpenSSH 存在输入验证错误漏洞(CVE-2019-16905) 解决
    1、下载文件:zlib-1.2.11.tar.gzopenssh-8.3p1.tar.gzopenssl-1.1.1g.tar.gz 2、解压升级包tar--no-same-owner-zxvfzlib-1.2.11.tar.gztar--no-same-owner-zxvfopenssh-8.3p1.tar.gztar--no-same-owner-zxvfopenssl-1.1.1g.tar.gz 3、编译安装zlibcdzli......
  • Clion\+OpenCV(C\+\+版)开发环境配置教程Win/Mac
    合集-环境配置(2)1.最全!嵌入式STM32单片机开发环境配置教学Win/Mac!!!08-282.最简最速!C++版OpenCV安装配置教程Win/Mac!!!08-28收起Clion+OpenCV(C++版)开发环境配置教程Win/Mac平时在学习和比赛的时候都是使用的Python版本的OpenCV,最近遇到了一个项目使用的上位机性能有限于是决定......
  • Datawhale AI 夏令营 CV方向 Task 1
    一、赛事背景        城市治理赛道——随着城市化进程的加快,城市管理面临着前所未有的挑战。占道经营、垃圾堆放和无照经营游商等问题对城市管理提出了更高的要求。本赛道聚焦城市违规行为的智能检测,要求选手研究开发高效可靠的计算机视觉算法,提升违规行为检测识别的......
  • OpenCV开发笔记(七十九):基于Stitcher类实现全景图片拼接
    若该文为原创文章,转载请注明原文出处本文章博客地址:https://hpzwl.blog.csdn.net/article/details/141561865长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…OpenCV开发专栏......
  • Datawhale AI 夏令营 CV方向 Task 2
    一、YOLO模型简介        YOLO模型是在图像和视频中识别感兴趣物体对象,通常通过边界框形式来识别物体。以下是物体检测的一些关键概念和步骤:输入:物体检测算法的输入通常是一张图像或视频帧。特征提取:算法使用深度学习模型(如卷积神经网络CNN)来提取图像的特征。这些......
  • SciTech-BigDataAIML-CV+CG-Digital Image/Signal Processing- RGB图片转换成 RGBA格
    RGBA与RGBRGB是Color(颜色)数值化为R(红色)、G(绿色)、B(蓝色)**三Channel(分量),每分量数值的取值范围为0-255。通过组合这三个ColorChannel(颜色分量)的不同数值,可以得到各种各样的颜色。RGBA是RGB颜色模型的一种扩展,只增加了一个表示透明度(Alpha)的透明分量(A)。A代......
  • RFFT:数据与代码已开源,京东推出广告图生成新方法 | ECCV 2024
    论文将多模态可靠反馈网络(RFNet)结合到一个循环生成图片过程中,可以增加可用的广告图片数量。为了进一步提高生产效率,利用RFNet反馈进行创新的一致条件正则化,对扩散模型进行微调(RFFT),显著增加生成图片的可用率,减少了循环生成中的尝试次数,并提供了高效的生产过程,而不牺牲视觉吸引力。......
  • PCSR:已开源,三星提出像素级路由的超分辨率方法 | ECCV 2024
    基于像素级分类器的单图像超分辨率方法(PCSR)是一种针对大图像高效超分辨率的新方法,在像素级别分配计算资源,处理不同的恢复难度,并通过更精细的粒度减少冗余计算。它还在推断过程中提供可调节性,平衡性能和计算成本而无需重新训练。此外,还提供了使用K均值聚类进行自动像素分配以及后......
  • EasyCVR视频汇聚平台中的H.265技术:助力实现大规模高效流畅的视频监控应用
    随着视频监控技术的不断发展和用户对视频质量要求的不断提高,高效能、低延迟的视频编码技术成为视频监控系统中的重要支撑。TSINGSEE青犀视频旗下的EasyCVR视频汇聚平台凭借其强大的视频处理能力和对H.265技术的支持,在视频监控系统中展现出显著的应用优势。本文将详细探讨EasyCVR平......