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;
}

运行结果

相关推荐
满怀10151 小时前
【生成式AI文本生成实战】从GPT原理到企业级应用开发
人工智能·gpt
微刻时光1 小时前
影刀处理 Excel:智能工具带来的高效变革
人工智能·python·低代码·自动化·excel·rpa·影刀rpa
聚客AI3 小时前
ChatGPT到Claude全适配:跨模型Prompt高级设计规范与迁移技巧
人工智能·机器学习·语言模型·自然语言处理·langchain·transformer·llama
小羊Linux客栈3 小时前
自动化:批量文件重命名
运维·人工智能·python·自动化·游戏程序
Mr数据杨8 小时前
【Dv3Admin】插件 dv3admin_chatgpt 集成大语言模型智能模块
人工智能·语言模型·chatgpt
zm-v-159304339868 小时前
AI 赋能 Copula 建模:大语言模型驱动的相关性分析革新
人工智能·语言模型·自然语言处理
zhz52149 小时前
AI数字人融合VR全景:从技术突破到可信场景落地
人工智能·vr·ai编程·ai数字人·ai agent·智能体
数据与人工智能律师9 小时前
虚拟主播肖像权保护,数字时代的法律博弈
大数据·网络·人工智能·算法·区块链
武科大许志伟9 小时前
武汉科技大学人工智能与演化计算实验室许志伟课题组参加2025中国膜计算论坛
人工智能·科技
哲讯智能科技9 小时前
【无标题】威灏光电&哲讯科技MES项目启动会圆满举行
人工智能