具有指定截止频率的低通高斯滤波器

2023-12-02

我正在玩混合图像,并想使用高斯滤波器对图像进行低通滤波。然而,为了制作混合图像,应该在 2 个图像上使用 2 个滤波器,并以不同的截止频率进行组合。

Does fspecial()当我们使用它来制作高斯滤波器时,允许我们指定截止频率吗? (我知道我们可以指定滤波器大小和西格玛,并且西格玛和截止频率之间存在某种关系)。如果我们只能使用 sigma 指定截止频率,那么我需要设置什么 sigma 才能获得 0.2 Hz 的截止频率。


我将首先回答有关一维的问题,其余的将随之而来。它可能看起来微不足道,但请耐心等待一段时间。让我们假设以下代码:

t=linspace(0,20,2^10); %time vector in seconds
w=0.2; %in Hz
signal=cos(2*pi*w*t)+rand(1,length(t))-0.5; % signal in seconds
dt=t(2)-t(1) ;
N=length(signal);
df=1/(N*dt);    % the frequency resolution (df=1/max_T)
if mod(N,2)==0
    f_vec= df*((1:N)-1-N/2);  % for EVEN length vectors
else
    f_vec= df*((1:N)-0.5-N/2); 
end

因此,我们创建了特定频率的噪声信号。 f_vec 是从 f =[-f_max,-f_max+df,...,0,...,f_max] 延伸的频率向量,其中 f_max=1/(2*dt)。如果我们现在设计一个一维高斯滤波器(在傅立叶空间中)如下:

f_vec0=0;
sigma=1;
filter=exp( -(f_vec-f_vec0).^2./(2*sigma^2)); 

然后在傅立叶域中进行滤波:

f_signal=fftshift(fft(signal));
filt_signal=fftshift(ifft(f_signal.*filter));

因此,从我们应用的滤波器来看,sigma=1 意味着截止频率(我确定为滤波器最大值(即 1)的 1%)大约为 3 Hz:

 cutoff_freq=f_vec(find(filter>=0.01,1,'last'))

将其转化为 2D 很简单,只需小心单位即可。对于图像来说,有像素作为位置单位,1/像素作为空间频率。 fspecial 函数生成预定义滤波器的二维矩阵。 fspecial的用法通常是这样的:

PSF = fspecial('gaussian',hsize,sigma);
Blurred = imfilter(Image,PSF,'symmetric','conv');

使用卷积就像在傅立叶域中进行乘法一样。傅里叶域中的 sigma 与位置域的 1/sigma 成正比,等等......

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

具有指定截止频率的低通高斯滤波器 的相关文章

  • MATLAB 类的 Description 和DetailedDescription 属性

    内置 MATLAB 类具有 Description 和 DetailedDescription 属性的值 gt gt handle ans meta class handle Package meta Properties Name han
  • MATLAB:在不使用循环的情况下提取矩阵的多个部分

    我有一个巨大的 2D 矩阵 我想从中提取 15 个不同的 100x100 部分 我有两个向量 x 和 y 其中保存了零件的左上角索引 我用过这样的东西 result cam1 x 1 end x 1 end 99 y 1 end y 1 e
  • Java元数据读写

    是否可以以通用方式 对于所有图像类型 在 Java 中读取和写入元数据 我找到了一些示例 但它们总是特定的 例如 JPEG 或 PNG 我需要一些足够通用的东西 而不是到处都有 if else 语句 我不想重写源代码 但这是一个很好的例子
  • opencv - 在图像中绘制轮廓

    我正在尝试在图像周围绘制轮廓 我可以看到找到了轮廓 但无法绘制轮廓 轮廓的颜色似乎是两种 黑色和白色 颜色中的一种 import cv2 import numpy as np import matplotlib pyplot as plt
  • 加到 100 的随机数:Matlab

    我将人口数量分成不同的矩阵 现在想使用随机数测试我的代码 快速提问 谢谢你们提前的帮助 如果我使用 100 rand 9 1 使这 9 个数字相加等于 100 的最佳方法是什么 我想要 9 个 0 到 100 之间的随机数 加起来为 100
  • Matlab:如何在没有颜色分级的情况下绘图?

    我的朋友制作了一个脚本来处理大量数据并绘制各种图表 但是当他运行脚本时 图表根据图例具有不同的颜色 当我这样做时 所有图表都相似 颜色渐变从黑色到红色的 见图 为什么不同以及如何获得不同颜色的图表 带有颜色分级图的 2D 绘图 figure
  • 图像处理中面部标志点的归一化

    我正在从事一个与从面部识别情绪 悲伤 快乐 愤怒等 相关的项目 我正在使用 dlib 库中的面部标志检测器 它检测 68 个兴趣点 对于相同的情绪 这些兴趣点会根据不同面部的面部朝向 眼睛大小 嘴唇等而变化 我想标准化这些兴趣点 使它们不受
  • 小矩阵乘以大矩阵

    我试图将小矩阵 假设为 2x2 中的每个元素与大矩阵 假设为 4x4 中的每个位置逐个元素相乘 所以我想要 1 2 3 4 1 0 3 0 1 0 1 2 3 4 0 0 0 0 0 0 x 1 2 3 4 1 0 3 0 1 2 3 4
  • 四边形到矩形变换

    我想将四边形图像转换为我知道这些顶点的矩形图像 例如 在下图中 我知道坐标 X1 Y1 X4 Y4 和 x1 y1 x2 y2 并且我想将其转换为矩形 如何获得与四边形图像中的 X Y 坐标相对应的矩形图像中的 x y 坐标 gt Y gt
  • 从 TransformedBitmap 对象中“跨越”困境

    我有一个 2208 x 3000 TransformedBitmap 对象 其格式为 Indexed8 我正在对其进行 CopyPixels 操作 我在用着 int formattedBitmap PixelWidth formattedB
  • Matlab:从一定范围内不重复的随机整数

    我想获得一个包含在范围内且不重复的随机整数的数组 我使用了 randperm 15 3 输出是 8 10 12 这个函数不使用范围 我只想从 10 中随机取值 例如 如果您有统计工具箱 则可以使用randsample https www m
  • 确定时间序列数据的 SOM(自组织映射)中的集群成员资格

    我也在做一个需要对时间序列数据进行聚类的项目 我正在使用在 MATLAB 中运行的 SOM 工具箱进行聚类 但遇到了以下问题 我们如何确定哪些数据属于哪个集群 SOM从数据集中随机选择数据样本 并为每个数据样本找到BMU 据我所知 SOM算
  • MATLAB 的函数 imfill() 导致错误

    我有一个二进制图像 720x1280 逻辑 其中有一些漏洞 所以我使用imfill来填充它 但是操作失败并且出现以下错误 Undefined function or variable eml assert all constant Erro
  • 如何从图像中提取 RGB 并仅将 RG 绘制为图形? R 代表 X,G 代表 Y

    我正在尝试从图像中提取 RGB 分量并使用 matplotlib 绘制 3D RGB 直方图 但我不知道该怎么做 这是我当前的代码 import cv2 import numpy as np from scipy import ndimag
  • MATLAB - 避免循环基于其他向量的元素创建矩阵

    假设我有向量x y z 长度n m l 我想创建一个细胞矩阵Q使用这些向量的元素 天真的人们可以像这样使用 for 循环 for i 1 n for j 1 m for k 1 l Q i j k someFunction x i y j
  • C# - 将 WPF Image.source 转换为 System.Drawing.Bitmap

    我发现很多人都在转换BitmapSource to a Bitmap 但是关于ImageSource to Bitmap 我正在制作一个成像程序 我需要从显示的图像中提取位图Image元素 有谁知道如何做到这一点 EDIT 1 这是一个用于
  • 使用 openCV 检测 ROI

    我正在做一项工作 我必须找到感兴趣的区域 ROI 然后对图像执行阈值 由于我不是计算机领域的 所以我遇到了一些困难 我开始尝试通过以下代码找到投资回报率 code string filename 2011 06 11 09 3A12 3A1
  • 评估函数卷积时出错

    这是我第一次尝试用 matlab 编写任何东西 所以请耐心等待 我正在尝试评估以下 ODE 的解 w N w w f t 与柯西条件 w 0 w 0 0 这里 N 是给定的非线性函数 f 是给定的源 我也需要这个功能 其中 G 是以下 OD
  • 从高斯分布中采样随机值的最快方法是什么?

    The Box Muller 变换 http en wikipedia org wiki Box E2 80 93Muller transform 是一种从高斯分布中采样随机值的优雅且性能合理的方法 我正在寻找一种用 C 编写 清晰的更快方
  • Matlab中带误差条的直方图

    我想将误差条放在条形图中 每个条形上方 我试过 bincentres 85 10 85 nelements 1 4 14 24 46 57 63 63 174 147 69 49 22 9 4 2 1 0 err sqrt nelement

随机推荐

  • 范围生成中“..”(双点)和“...”(三点)之间的区别?

    我刚刚开始学习 Ruby 和 Ruby on Rails 遇到了使用范围的验证代码 validates inclusion of age in gt 21 99 validates exclusion of age in gt 0 21 m
  • C++ 在什么条件下优化构造函数调用?

    我正在为矩阵算术编写一个类 我正在实现的一个功能是您可以 切片 一个矩阵并返回另一个矩阵 但这样做是为了使返回的矩阵引用父级的内存 如果您想要获取矩阵的一部分或将向量添加到列或类似的事情 这非常有用 但是 我想实现它 以便如果分配或复制返回
  • 为矩阵的每一行设置特定列的值

    我有一个矩阵A with m行 我想将每行的特定元素设置为 1 列索引因行而异 由列向量指定a with m值 也就是说 我想要A i a i 1 有没有一种快速的方法可以在Matlab中做到这一点 没有for循环 我用以下方法解决了这个问
  • Python urllib2.open 连接被对等错误重置

    我正在尝试使用 python 抓取页面 问题是 我不断收到 Errno54 连接被同行重置 当我运行此代码时出现错误 urllib2 urlopen http www bkstr com webapp wcs stores servlet
  • 计算两个经纬度点之间的距离? (半正矢公式)

    如何计算由纬度和经度指定的两点之间的距离 为了澄清起见 我想要以公里为单位的距离 这些点使用 WGS84 系统 我想了解可用方法的相对精度 This link可能对您有帮助 因为它详细介绍了半正矢公式来计算距离 Excerpt 该脚本 Ja
  • SQL Server 表填充源

    我有一个审计数据库 由其他人创建 有些东西正在用表大小数据填充它 这很有意义 因为它是审计数据库 SQL 服务器有太多的工作 我想知道审计表中填充了什么 有没有像 sys comments 之类的东西 它可以告诉我什么正在填充表 或者我是否
  • Google App Script 背景通过 HtmlService 透明

    我正在为 google 网站使用 google apps 脚本 并且我可以使用以下命令轻松创建透明背景UiApp createApplication setStyleAttribute background transparent 现在 我
  • 将 NuGet 包替换为本地 dll 文件

    我正在开发的项目依赖于 NuGet 包 包内的dll文件是在Release模式下编译的 因此使用调试器检查代码 这是我的目标 是不可能的 我想用我在调试模式下编译的文件替换 dll 文件 如果我通过 NuGet 删除包然后通过添加它Add
  • Paradox 如何管理 null 值和空值?

    我通过 Borland 数据库引擎 BDE 使用 Paradox 表 我无法领悟道路null and 空字符串值在字符串字段中处理 Paradox 数据类型 A 我的具体问题是如何确定字段值是否为空或空字符串 在数据库桌面工具中 它们似乎都
  • 如何在 Python 3 pyspark 中反转 RDD 中的键和值?

    这在 Python 2 7 中有效 但在 Python 3 5 中它返回 语法错误 语法无效 我不确定这是否与我在另一篇文章中读到的 元组解包 从 Python 3 中删除这一事实有关 或者是一个不同的问题 rddInverted rdd
  • MATLAB 的“fminsearch”与 Octave 的“fmincg”不同

    我试图在 MATLAB 和 Octave 中的两个函数之间获得简单优化问题的一致答案 这是我的代码 options optimset MaxIter 500 Display iter MaxFunEvals 1000 objFunc t l
  • Java 静态调用比非静态调用更昂贵还是更便宜?

    是否有这样或那样的性能优势 它是编译器 VM 特定的吗 我正在使用热点 四年后 好吧 为了一劳永逸地解决这个问题 我编写了一个基准测试 它显示了不同类型的调用 虚拟 非虚拟 静态 之间的比较 我运行了它关于ideone 这就是我得到的 迭代
  • 覆盖性。配置为忽略源代码的某些部分

    寻找一种配置覆盖性以忽略某些代码部分的方法 例如 假设我有源代码func1 and func2 我不想进行覆盖性分析func1 但我还是想分析一下func2 有没有办法做到这一点 是否有我可以添加的特殊内嵌注释 int func1 int
  • 创建包含“;”的cookie特点

    我想创建一个cookie 它的值包含许多 通常用于在 java 中分隔多个 cookie 的字符 这就是为什么我的代码无法完成他的工作 如果有人可以帮助我如何创建这个 特殊 cookie 并使我的代码正常工作 谢谢 您可以使用 URL 编码
  • 如何为多记录 Rails 表单中的复选框设置唯一 ID?

    我大致按照中的说明设置了一个 Rails 表单this铁路广播 这是表单的代码 ul div div ul 这是待办事项部分的代码 div class todo li li div
  • Vue:如何使用@click调用多个函数?

    如何在一个函数中调用多个函数 click aka v on click 到目前为止我尝试过 用分号分隔函数 div div 使用几个 click div div 作为解决方法 我可以创建一个处理程序 div div function fn3
  • QSignalMapper 可以用来重新发出具有多个参数的信号吗?

    是否可以使用 QSignalMapper 重新发出具有多个参数的信号 我找到了一种解决方法 但我很想知道这是否可能 示例 采取void QLineEdit textEdited const QString text 信号 并重新发出 voi
  • 我的 sql 查询使用 GROUP BY 函数获取中间行值

    我的数据库结构是这样的 Id Price Code 1 0 12 93 2 0 13 93 3 0 54 93 4 0 96 93 5 0 10 94 6 0 30 94 7 0 90 94 8 1 40 94 9 2 30 94 我必须使
  • 使用ffmpeg生成视频

    我正在尝试使用 ffmpeg 库从图像集生成视频 使用以下代码 我可以在模拟器上生成视频 但是当我在设备上运行它时 它会在视频中产生奇怪的绿色效果 我跟着使用 ffmpeg 将图像编码为视频网址 任何人都可以帮助我 或者如果可以提供代码片段
  • 具有指定截止频率的低通高斯滤波器

    我正在玩混合图像 并想使用高斯滤波器对图像进行低通滤波 然而 为了制作混合图像 应该在 2 个图像上使用 2 个滤波器 并以不同的截止频率进行组合 Does fspecial 当我们使用它来制作高斯滤波器时 允许我们指定截止频率吗 我知道我