首页 > 编程语言 >Lnton羚通视频分析算法平台OpenCV-Python教程 图像变换(频域变换)

Lnton羚通视频分析算法平台OpenCV-Python教程 图像变换(频域变换)

时间:2023-09-01 15:02:39浏览次数:44  
标签:plt OpenCV 变换 频域 离散 Python np 傅里叶

 

频域变换是一种将信号从时间域表示转换为频率域表示的方法。它可以帮助我们理解信号的频率成分以及进行信号处理和分析。

常见的频域变换方法包括傅里叶变换(Fourier Transform)和离散傅里叶变换(Discrete Fourier Transform,DFT)。以下是它们的简要介绍:

傅里叶变换(Fourier Transform):

傅里叶变换是一种连续型的频域变换方法,它将时域信号分解为不同频率的正弦和余弦波的叠加。傅里叶变换的公式如下:

F(ω) = ∫[f(t) * e^(-jωt)] dt

其中,F(ω) 是频域表示的函数,f(t) 是时域信号,ω 是频率,e^(-jωt) 是指数函数。

离散傅里叶变换(Discrete Fourier Transform,DFT):

离散傅里叶变换是一种离散的频域变换方法,适用于离散的序列或数字信号。它将离散序列分解为不同频率的正弦和余弦波的叠加。离散傅里叶变换的公式如下:

X(k) = Σ[x(n) * e^(-j(2πkn/N))],n=0,1,...,N-1

其中,X(k) 是频域表示的序列,x(n) 是离散序列,k 是频率索引,N 是序列的长度,e^(-j(2πkn/N)) 是指数函数。

# NumPy 的 FFT
import cv2
import numpy as np
from matplotlib import pyplot as plt

# 读入图像
img = cv2.imread('assets/messi5.jpg', 0)

# fft
f = np.fft.fft2(img)

# 移动到中心
fshift = np.fft.fftshift(f)

# 幅度
magnitude_spectrum = 20*np.log(np.abs(fshift))

# 显示
plt.subplot(121), plt.imshow(img, cmap='gray')
plt.title('Input Image'), plt.xticks([]), plt.yticks([])
plt.subplot(122), plt.imshow(magnitude_spectrum, cmap='gray')
plt.title('Magnitude Spectrum'), plt.xticks([]), plt.yticks([])
plt.show()

Lnton羚通视频分析算法平台OpenCV-Python教程 图像变换(频域变换)_傅里叶变换

 

Lnton 羚通频域变换可以将信号从时域转换为频域,提供了信号在不同频率上的成分信息。它在很多应用中非常重要,如音频处理、图像处理、信号压缩、滤波等。通过在频域上对信号进行操作,我们可以实现一些特定的信号处理任务,如滤波、频谱分析、频域滤波等。 在计算机领域中,傅里叶变换和离散傅里叶变换被广泛应用,并有相应的快速算法(如快速傅里叶变换 FFT)可用于高效计算。许多信号处理工具库和软件包(如NumPy、SciPy、MATLAB)都提供了对频域变换的支持。

Lnton羚通视频分析算法平台OpenCV-Python教程 图像变换(频域变换)_时域_02

标签:plt,OpenCV,变换,频域,离散,Python,np,傅里叶
From: https://blog.51cto.com/LNTON/7322966

相关文章

  • Python下载_Python免费版下载「编程工具」中文版介绍
    Python具有脚本语言中最丰富和强大的类库,足以支持绝大多数日常应用。Python的名字来源于一个喜剧,也许最初设计Python这种语言的人并没有想到今天它会在工业和科研上获得如此广泛的使用。著名的自由软件作者EricRaymond在他的文章《如何成为一名黑客》中,将Python列为黑客应当学习的......
  • Python-3.10.5学习笔记
     Linux系统-部署-运维系列导航pip源初始化pipconfigsetglobal.index-urlhttps://pypi.tuna.tsinghua.edu.cn/simplepipconfigsetinstall.trusted-hostpypi.tuna.tsinghua.edu.cn VSCode插件安装语法检查flake8代码格式化yapf文件及文件夹图标vscode-icon......
  • Python-嵌套数组获取对应的值
    二维数组示例:er_array=[['霹雳火','急先锋','超音速']]forinner_arrayiner_array:#嵌套二维数组,使用两个嵌套的for循环遍历数组并获取值forvalueininner_array:print(value) 方法一:使用enumerate函数,遍历获取元素的索引er_array=[['霹雳......
  • Python 深度学习目标检测评价指标
    ✅作者简介:热爱科研的算法开发者,Python、Matlab项目可交流、沟通、学习。......
  • python字典的应用一(增删改查)
    #一.有如下字典内容用程序解答下面的题目dic={'python':95,'java':99,'c':100}#1.字典的长度是多少print(len(dic))#2.请修改'java'这个key对应的value值为98dic["java"]=98print(dic)#3.删除c这个keydeldic["c"]print(di......
  • Python中while的and和or
    whileAandB:同时满足A和B条件whileAorB:满足A或B任意一条以1768.交替合并字符串官方答案为启发,以前没意识到while还可以用and和or。其实无论用什么,只要看最后的结果是True或FalseclassSolution:defmergeAlternately(self,word1:str,word2:str)->str:......
  • python f-string
    python|f-string_cuckooman的博客-CSDN博客>>>a='hello'>>>b=12.23456>>>f'{a}''hello'>>>F'{a}'#f支持大写和小写混用'hello'>>>f'{a=}'#直接以a=的形式打印......
  • Python的替换和切割
    strip()用法:.strip()是字符串方法之一,在Python中用于移除字符串开头和结尾的空白字符(包括空格、制表符\t、换行符\n等)。这个方法返回一个新的字符串,原始字符串本身不会被修改。下面是.strip()方法的用法示例:s="你好,我叫周杰伦"s1=s.strip()print(s1......
  • Python中处理Excel文件的常见问题与技巧
    Python中处理Excel文件的常见问题与技巧在数据分析和办公自动化领域,Excel是一种广泛使用的工具。本文将介绍如何利用Python来处理Excel文件时可能遇到的常见问题,并分享一些实用技巧。1.安装必要库使用pip或conda安装openpyxl、pandas等第三方库;.xlsx格式.2.读取和写入Excel文件......
  • 【Python进阶-PyQt5】00PyQt5简介
    0.图形用户界面-开发选择在Python基础的教程中,我们程序的用户交互界面都是运行窗口。这个运行窗口对于我们编程者来说直观明了,但是对于一些相对复杂的程序,用户使用上就会变得十分麻烦。所以,我们要通过设计用户交互界面来解决这种问题。程序的图形用户交互界面,英文称之为GUI(Grap......