OpenCV运动分析和目标跟踪(4)创建汉宁窗函数createHanningWindow()的使用

  • 操作系统:ubuntu22.04
  • OpenCV版本:OpenCV4.9
  • IDE:Visual Studio Code
  • 编程语言:C++11

算法描述

此函数计算二维的汉宁窗系数。

createHanningWindow是OpenCV中的一个函数,用于创建汉宁窗(Hann window)。汉宁窗通常用于频域处理中,可以减少边界效应并提高频率分辨率。在图像处理中,它通常用于频域滤波或特征提取等任务。

更多信息请参见(http://en.wikipedia.org/wiki/Hann_function)和(http://en.wikipedia.org/wiki/Window_function)

下面给出一个示例:

cpp 复制代码
// create hanning window of size 100x100 and type CV_32F
Mat hann;
createHanningWindow(hann, Size(100, 100), CV_32F);

汉宁窗(Hann window)是一种常用的窗函数,主要用于信号处理和图像处理等领域。它是一种平滑的窗口函数,可以减少边界效应(如吉布斯现象),并提高频谱分辨率。汉宁窗在频域处理中特别有用,例如在傅里叶变换前后应用以减少泄漏效应。

汉宁窗在以下场景中有广泛的应用:

  1. 频域滤波:在傅里叶变换前后应用汉宁窗可以减少频谱泄漏。
  2. 特征提取:在图像处理中,可以应用于图像的频域分析,减少边界效应。、
  3. 噪声去除:通过对频谱应用汉宁窗,可以有效地减少噪声的影响

函数原型

cpp 复制代码
void cv::createHanningWindow	
(
	OutputArray 	dst,
	Size 	winSize,
	int 	type 
)		

参数

  • 参数dst 用于放置汉宁系数的目标数组。
  • 参数winSize 窗口大小的规格(宽度和高度都必须大于1)。
  • 参数type 创建的数组类型。

代码示例

cpp 复制代码
#include <opencv2/opencv.hpp>
#include <iostream>

int main()
{
    // 加载图像
    cv::Mat frame = cv::imread("/media/dingxin/data/study/OpenCV/sources/images/sun2.jpg", cv::IMREAD_GRAYSCALE);
    if (!frame.data) {
        std::cout << "Could not open or find the image" << std::endl;
        return -1;
    }

    // 创建汉宁窗
    cv::Mat hannWindow;
    cv::createHanningWindow(hannWindow, frame.size(), CV_64F);

    // 使用 cv::minMaxLoc 找到最大值
    double minVal, maxVal;
    cv::minMaxLoc(hannWindow, &minVal, &maxVal);

    // 将汉宁窗转换为8位图像以便显示
    cv::Mat hannWindow8U;
    hannWindow.convertTo(hannWindow8U, CV_8U, 255.0 / (maxVal - minVal), -minVal * (255.0 / (maxVal - minVal)));

    // 显示原始图像
    cv::imshow("Original Image", frame);

    // 显示汉宁窗图像
    cv::imshow("Hanning Window", hannWindow8U);

    // 等待按键,以便查看图像
    cv::waitKey(0);

    // 关闭所有窗口
    cv::destroyAllWindows();

    // 保存结果
    cv::imwrite("hanning_window_result.jpg", hannWindow8U);

    return 0;
}

运行结果

相关推荐
湫ccc14 分钟前
《Opencv》基础操作详解(2)
人工智能·opencv·计算机视觉
羑悻的小杀马特14 分钟前
【AIGC篇】畅谈游戏开发设计中AIGC所发挥的不可或缺的作用
c++·人工智能·aigc·游戏开发
CES_Asia23 分钟前
国资助力科技创新,闪耀CES Asia 2025
人工智能·科技·智能手机·智能音箱·智能电视
eric-sjq1 小时前
基于xiaothink对Wanyv-50M模型进行c-eval评估
人工智能·python·语言模型·自然语言处理·github
是十一月末1 小时前
机器学习之KNN算法预测数据和数据可视化
人工智能·python·算法·机器学习·信息可视化
工业互联网专业1 小时前
基于OpenCV和Python的人脸识别系统_django
人工智能·python·opencv·django·毕业设计·源码·课程设计
ai产品老杨2 小时前
报警推送消息升级的名厨亮灶开源了。
vue.js·人工智能·安全·开源·音视频
智源研究院官方账号2 小时前
智源研究院与安谋科技达成战略合作,共建开源AI“芯”生态
人工智能·开源
积兆科技2 小时前
从汽车企业案例看仓网规划的关键步骤(视频版)
人工智能·算法·汽车·制造
Robot2512 小时前
「地平线」副总裁余轶南与「理想汽车」智驾产品总监赵哲伦联手创业,入局具身智能赛道!
大数据·人工智能·机器人·汽车