MATLAB---同态滤波

2023-10-27

在这里插入图片描述

% 同态滤波
clc,clear,close all  % 清理命令区、清理工作区、关闭显示图形
warning off       % 消除警告
feature jit off      % 加速代码运行
tic
[filename ,pathname]=...
    uigetfile({'*.bmp';'*.tif';'*.jpg';},'选择图片'); %选择图片路径
str=[pathname filename]; % 合成路径+文件名
im = imread(str);        % 读图
im = imnoise(im,'gaussian',0,1e-3); % 原图像 + 白噪声

%同态滤波参数设置
rL = 0.3999;  % 低频增益
rH = 0.71;   % 高频增益
D0 = 1;   % 截止频率
figure,
subplot(121),imshow(im);title('原始图像')
colormap(jet)  % 颜色
shading interp % 消隐
im_e = Homom_filter(im,D0,rL,rH);   % 同态滤波
subplot(122),imshow(im_e,[]);title('同态滤波图像')
colormap(jet)  % 颜色
shading interp % 消隐
toc
function im_e = Homom_filter(im,d,rL,rH)
% 同态滤波
%函数输入: 
%         im:  输入的二维图像矩阵
%         d:   截止频率
%         rL   低频增益
%         rH   高频增益
%函数输出: 
%         im_e: 重构滤波图像

if ~isa(im,'double')
    im = double(im);
end

[r c]=size(im); % 输入图像维数
% 高斯高通滤波
A=zeros(r,c);
for i=1:r
    for j=1:c
        A(i,j)=(((i-r/2).^2+(j-c/2).^2)).^(.5);
        B(i,j)=A(i,j)*A(i,j);
        H(i,j)=(1-exp(-((B(i,j)).^2/d.^2)));  % 传递函数
    end
end

% 同态滤波器传递函数:
H=((rH-rL).*H)+rL;
% 取对数
im_l=log2(im + 1e-5);
% 离散傅里叶变换
im_f=fft2(im_l);
% 滤波
im_nf=H.*im_f;
% DFT反变换
im_n=abs(ifft2(im_nf));
% 指数变换,消除取对数
im_e = exp(im_n);  % 滤波矩阵
im_e = uint8(im_e);

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

MATLAB---同态滤波 的相关文章

  • 在matlab中设置图例符号的精度

    我有这个 leg2 strcat Max Degree num2str adet 1 1 ch l leg3 strcat Min Degree num2str adet 1 2 ch l leg4 strcat Max Request n
  • 使用 varargin (...) 时如何显示不同的函数用法?

    当您输入 Matlab 函数名称并打开大括号时 例如sum 在命令窗口中 将打开一个工具提示 显示此函数的所有可能用法 当我编写自己的接受函数时varargin 工具提示仅显示一个选项 而不是varargin puts e g myfunc
  • MATLAB 是否已有 YAML 库/解析器?

    我想使用 YAML 跨多种语言交流一些数据 将其视为 与语言无关的序列化 其中一种语言是 MATLAB 但我似乎找不到该语言的 YAML 库 我在 Google 上检查了 matlab yaml 和 matlab yaml parse 似乎
  • 在 matlab/octave 中将数据集分成两个子集 [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 将数据集分为两个子集 例如 训练 和 测试 其中 训练集包含 80 的数据 测试集包含剩余的 20 分裂的意思是生成一个长度等于的逻辑索引
  • MATLAB 中的抗锯齿线和标记

    您好 我在 MATLAB 中有一张图像 我希望这条线是平滑的 看看从 0 4 到 0 8 的线 这太可怕了 当在图中使用 LineSmoothing on 运算符时 我得到了这个 我在线条上做得很好 但它也使标记变得平滑 而且它们太可怕了
  • 如何建立数据流挖掘的滑动窗口模型?

    我们遇到的情况是 流 来自传感器的数据或服务器上的点击流数据 采用滑动窗口算法 我们必须将最后 例如 500 个数据样本存储在内存中 然后 这些样本用于创建直方图 聚合并捕获有关输入数据流中异常的信息 请告诉我如何制作这样的滑动窗 如果您询
  • 查找数组中元素之间的平均差异的有效方法

    希望标题不会让人困惑 通过例子来展示很简单 我有一个像这样的行向量 1 5 6 我想找到每个元素之间的平均差异 此示例中的差异为 4 和 1 因此平均值为 2 5 这是一个小例子 我的行向量可能非常大 我是 MatLab 新手 那么有没有一
  • 如何读取 10 位原始图像?其中包含 RGB-IR 数据

    我想知道如何从我的 10 位原始 它有 rgb ir 图像数据 数据中提取 RGB 图像 如何使用 Python 或 MATLAB 进行阅读 拍摄时的相机分辨率为 1280x720 室内照片图片下载 https drive google c
  • 白色像素簇提取

    我正在研究指纹毛孔提取项目 并陷入毛孔 白色像素簇 提取的最后阶段 我有两个输出图像 我们可以从中获取毛孔 但不知道该怎么做 这两个图像的尺寸不同 image1 的尺寸为 240 320 image2 的尺寸为 230 310 这是我的图像
  • 这是 `min` 和 `nanmin` 之间的区别; Matlab 中的“max”和“nanmax”?

    Matlab描述nanmin and nanmax像这样 NANMIN最小值 忽略NaNs NANMAX最大值 忽略NaNs 但实际上 min and max ignore NaNs too 那我应该使用哪个 根据我的测试 nanmin a
  • python 正弦和余弦精度

    如何提高Python正弦和余弦精度 例如 我想使用以下代码 只需计算随机复向量 x 的 y cos acos x import numpy as np N 100000 x np zeros N 1j np zeros N for k in
  • 为什么matlab的mldivide比dgels好这么多?

    Solve Ax b 真正的双 A是超定的 Mx2 其中 M gt gt 2 b是MX1 我运行了大量的数据mldivide 并且结果非常好 我用 MKL 写了一个 mex 例程LAPACKE dgels但它远没有那么好 结果有大量噪音 并
  • 在 Matlab 中显示有理数

    我有两个整数 m n 它们一起形成 m n 形式的有理数 现在我只想以这种理性的形式在 Matlab 中显示它们 我可以通过这样做来做到这一点 char sym m n 所以 如果 例如m 1 n 2 Matlab将显示1 2 然而 如果m
  • 优化 MATLAB 代码(嵌套 for 循环计算相似度矩阵)

    我正在 MATLAB 中基于欧几里德距离计算相似度矩阵 我的代码如下 for i 1 N M N is the size of the matrix x for whose elements I am computing similarit
  • 定义自定义 Mupad 程序的一般相对搜索路径

    假设我有一个 mupad 笔记本myMupadNotebook mn在路径上 C projectFolder ABC abc 它调用程序MyMupadProcedure mu它位于 C DEF GHI 现在我有一个 Matlab 脚本mai
  • 使用 R2010b 中的符号工具箱来求解和/或 linsolve

    我前几天问了一个问题here https stackoverflow com questions 20317038 matlab linear congruence solver that supports a non prime modu
  • 检查图像中是否有太薄的区域

    我正在尝试验证雕刻机的黑白图像 更多的是剪贴画图像 不是照片 我需要考虑的主要事情之一是区域的大小 或线条的宽度 因为机器无法处理太细的线条 所以我需要找到比给定阈值更细的区域 以此图为例 竖琴的琴弦可能太细而无法雕刻 我正在阅读有关 Ma
  • 在 Matlab 的命令窗口中获取旧式帮助

    问题的简短版本 在最新版本的 Matlab 中 我在 Windows 上的 R2014b 和 R2015a 中看到过 当您键入help foo你得到一个简要描述 简介函数及其签名 例如 输入help bsxfun产生类似这样的东西 只有更好
  • Python 或 C 语言中的 Matlab / Octave bwdist()

    有谁知道 Matlab Octave bwdist 函数的 Python 替代品 此函数返回给定矩阵的每个单元格到最近的非零单元格的欧几里得距离 我看到了一个 Octave C 实现 一个纯 Matlab 实现 我想知道是否有人必须用 AN
  • Matlab 一个图上有多个图例 2014b

    我想在一个地块上有多个传说 该解决方案在 2014b 版本之前完美运行 我试图弄清楚如何使用手柄优雅地制作它 但到目前为止还没有成功 欢迎任何想法 2013b 的示例 x 1 50 y1 sin x 2 y2 cos x 2 f figur

随机推荐

  • 小程序开发调用微信支付以及微信回调地址配置

    首先观看微信提供的文档 https pay weixin qq com wiki doc api wxa wxa api php chapter 7 3 index 1 清楚调用微信支付必须传递的参数 因为微信提供了小程序唤起微信支付的方法
  • emoji数据清洗

    在对微博等文本数据进行处理的时候发现以往的颜文字之外还会抓取到emoji数据 这部分虽然可以匹配到 但是经常挂一漏万 在网上检索到有一个emoji库可以使用 直接pip安装emoji库 import emoji import re def
  • Postman —— 配置环境变量

    PostMan是一套比较方便的接口测试工具 但我们在使用过程中 可能会出现创建了API请求 但API的URL会随着服务器IP地址的变化而改变 这样的情况下 如果每一个API都重新修改URL的话那将是非常的麻烦 所以PostMan中也提供环境
  • 第二届“移动云杯”大赛医疗行业应用子赛道答疑会成功召开

    为帮助参赛团队了解第二届 移动云杯 算力网络应用创新大赛的命题背景 作品立意 提高作品质量 9月13日 我们召开了第二届 移动云杯 大赛答疑会 特别针对医疗行业应用子赛道的赛题作讲解和答疑 赛题背景 随着科技的不断进步 精准医学技术得到了广
  • 使用C++搭配OpenGL写了一个RenderEngine

    最近在学习OpenGL 看书看的再多 也不如自己动手写一个来看看 耗时一个多月 由于才学不久 各位大佬勿喷 用到了glfw Imgui glm这几个库 整合的资源里都带了 相机类 ifndef CAMERA H define CAMERA
  • 鉴源实验室

    作者 李伟 上海控安安全测评部总监 来源 鉴源实验室 社群 添加微信号 TICPShanghai 加入 上海控安51fusa安全社区 引言 上一篇开始我们介绍白盒的代码结构覆盖率测试 已经完成了语句覆盖测试的讲解 本篇我们介绍分支覆盖 01
  • Linux脚本实战之猜数字

    Linux脚本实战之猜数字 一 脚本要求 二 脚本示例一 三 脚本示例二 一 脚本要求 1 系统环境为RHEL8 0 2 脚本生成一个100以内的随机数 提示用户猜数字 3 根据用户的输入 提示猜对了 猜大了或猜小了 直到用户猜对为止 二
  • 使用构建Docker镜像的方式部署Vue+node项目

    目录 一 安装镜像 二 创建Dockerfile文件构建容器 1 添加Dockerfile文件 2 上传文件 3 构建镜像 4 运行容器 三 如何优化 Docker 镜像 准备工作 电脑安装了node js 配置了vue cli 环境 远程
  • windows驱动开发3:第一个驱动及调试

    一 创建项目 新建一个以Kernel Mode Driver Empty KMDF 为模板的驱动项目 项目名称HelloDriver 在项目中新建一个hello cpp文件作为驱动入口文件 写一点简单的代码做测试 hello cpp代码 i
  • python基于图像颜色的火焰识别

    本文基于图像颜色 主要结合RGB和HSI两种判断依据进行火焰识别 判断依据参考了以下文章 实在是非常感谢 OpenCV学习记录之视频中的火焰检测识别 python版基于颜色的火焰识别 判断条件如下 R gt redThre R gt G g
  • 数据竞赛专题

    为了帮助更多竞赛选手入门进阶比赛 通过数据竞赛提升理论实践能力和团队协作能力 DataFountain 和 Datawhale 联合邀请了数据挖掘 CV NLP领域多位竞赛大咖 将从赛题理解 数据探索 数据预处理 特征工程 模型建立与参数调
  • mmcv读取配置文件,在windows上无法创建临时文件解决方法

    报错是写入 盘的Temp没有权限 因此修改到其他目录 在config中修改以下两个函数 def substitute predefined vars filename temp config name file dirname osp di
  • 用工厂模式管理多个solidity智能合约

    我们写了一份小的计算合约作为Hello World 如果我们可以创建一个允许用户创建自己的计数器的合约怎么办 让我们创建我们的合约CounterFactory 它将管理所有其他计数器Counters 它将包含一个映射 将所有者与其计数器合约
  • captcha验证码入门

    kaptcha是一个简单易用的验证码生成工具 而且支持中文 你还可以配置其很多属性 用法 1 首先到http code google com p kaptcha downloads list把压缩文件下下来 然后把里面的jar文件加到自己的
  • 项目一:用OpenCV识别银行卡号

    import cv2 def sort contours cnts method left to right reverse False i 0 if method right to left or method bottom to top
  • 阿里巴巴的数据库连接池 druid 优点

    阿里的 druid 它不仅仅是一个数据库连接池 它还包含一个ProxyDriver 一系列内置的JDBC组件库 一个SQL Parser Druid 相对于其他数据库连接池的优点 1 强大的监控特性 通过Druid提供的监控功能 可以清楚知
  • 凯恩帝数控系统面板介绍_凯恩帝数控车床操作面板按钮详解!

    KND1TB数控系统操作 在 视图 下拉菜单或者浮动菜单中选择 控制面板切换 后 数控系统操作键盘会出现在视窗的右上角 其左侧为数控系统显示屏 如下图所示 用操作键盘结合显示屏可以进行数控系统操作 KND1TB 输入面板 按键介绍 数字键
  • 黑苹果系统--Parallels Desktop虚拟机使用

    1 挂载外部磁盘到windows虚拟机 1 通过USB将外部磁盘连接至Mac 2 在虚拟机配置窗口中 选择 Hardware gt Add gt Hard Disk 3 在 Type 菜单中选择 Physical Disk 并在 Locat
  • Linux EOIP — 二层协议

    一 协议介绍 EOIP是一个 MikroTik的 Linux使用 TAP的 EoIP EoIPv6隧道的实现 EoIP Ethernet over IP 和 EoIPv6 Ethernet over IPv6 是 MikroTik Rout
  • MATLAB---同态滤波

    同态滤波 clc clear close all 清理命令区 清理工作区 关闭显示图形 warning off 消除警告 feature jit off 加速代码运行 tic filename pathname uigetfile bmp