基于二维连续小波变换条纹图相位提取方法附matlab代码

2023-11-22 14:20

本文主要是介绍基于二维连续小波变换条纹图相位提取方法附matlab代码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法       神经网络预测       雷达通信       无线传感器        电力系统

信号处理              图像处理               路径规划       元胞自动机        无人机 

⛄ 内容介绍

提出了一种基于二维连续小波变换的电子散斑干涉(ESPI)条纹图相位提取方法.通过检测二维小波脊确定条纹相位,并引入条纹频率作为向导,有效地避免了相位解调过程中的符号奇异性问题,从而使该算法既能处理开条纹图也能处理闭条纹图,且对散斑噪声具有较强的抑制能力.数值模拟和实验结果表明,该方法在抑制散斑噪声的同时能够有效地提取出条纹相位,对开条纹图和闭条纹图都能处理.

⛄ 部分代码

close all;clc;clear;

%% 调制光栅进行  不适用于横条纹

% img=(imread('face 4.jpg'));  %读入图片

% img=(imread('5D.bmp'));  %读入图片

% img=(imread('2B.jpg'));  %读入图片

 img=(imread('4P.jpg'));  %读入图片

% img=(imread('2C.bmp'));  %读入图片

if numel( size( img ) ) > 2

    img = rgb2gray( img ); % 3通道图像转换为单通道   

end

global img_height;

global img_width;

[img_height, img_width ] = size( img ); 

% sigma=25;%添加噪声的标准差

% imgnoise=imnoise(img,'gaussian',0,(sigma/255)^2); %添加均值为0,标准差为sigma高斯噪声

% imshow(imgnoise);

% img = imgnoise;

%% 二维连续小波变换

% :paul

% :fan、gabmexh、cauchy

%  dog

% :sinc endstop1 gaus3 gaus2 gaus escauchy esmexh esmorl

% :rmorl endstop2 isomorl dog2 isodog dogpow pethat wheel   

cwtstruct = cwtft2(img,'wavelet','fan','scales',1:0.5:20,'angles',0,'plot'); axis equal;

global Len_scales;

global Len_angles; % 设为全局变量,供部分子函数调用

Len_scales = size(cwtstruct.cfs, 4);  % 获得尺度的个数

Len_angles = size(cwtstruct.cfs, 5); % 获得角度变化的个数

%% 分别对每行平移量利用代价函数提取小波脊

[opt_Scale, opt_Angle] = phase_extract_cost( cwtstruct );

⛄ 运行结果

⛄ 参考文献

[1] 韩民, 成旭. 基于小波变换的多尺度锥束CT图像快速三维重建方法:, CN106228601A[P]. 2016.

[2] 王翠珍, 陈振学, 王燕. 基于小波和双边滤波的活体牙CT图像去噪及三维重建[J].  2016.

[3] 韩民, 成旭, 李登旺. 基于小波变换的多分辨率锥束CT图像快速三维重建算法[J]. 电子与信息学报, 2017, 39(10):5.

[4] 孔令凯, 温俊海. 基于二维小波变换的SPECT图像重建算法研究[C]// 2007中国生物医学工程联合学术年会. 0.

⛳️ 代码获取关注我

❤️部分理论引用网络文献,若有侵权联系博主删除

❤️ 关注我领取海量matlab电子书和数学建模资料

这篇关于基于二维连续小波变换条纹图相位提取方法附matlab代码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/410734

相关文章

HTML5的input标签的`type`属性值详解和代码示例

《HTML5的input标签的`type`属性值详解和代码示例》HTML5的`input`标签提供了多种`type`属性值,用于创建不同类型的输入控件,满足用户输入的多样化需求,从文本输入、密码输入、... 目录一、引言二、文本类输入类型2.1 text2.2 password2.3 textarea(严格

检查 Nginx 是否启动的几种方法

《检查Nginx是否启动的几种方法》本文主要介绍了检查Nginx是否启动的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1. 使用 systemctl 命令(推荐)2. 使用 service 命令3. 检查进程是否存在4

Java方法重载与重写之同名方法的双面魔法(最新整理)

《Java方法重载与重写之同名方法的双面魔法(最新整理)》文章介绍了Java中的方法重载Overloading和方法重写Overriding的区别联系,方法重载是指在同一个类中,允许存在多个方法名相同... 目录Java方法重载与重写:同名方法的双面魔法方法重载(Overloading):同门师兄弟的不同绝

MySQL字符串转数值的方法全解析

《MySQL字符串转数值的方法全解析》在MySQL开发中,字符串与数值的转换是高频操作,本文从隐式转换原理、显式转换方法、典型场景案例、风险防控四个维度系统梳理,助您精准掌握这一核心技能,需要的朋友可... 目录一、隐式转换:自动但需警惕的&ld编程quo;双刃剑”二、显式转换:三大核心方法详解三、典型场景

JAVA项目swing转javafx语法规则以及示例代码

《JAVA项目swing转javafx语法规则以及示例代码》:本文主要介绍JAVA项目swing转javafx语法规则以及示例代码的相关资料,文中详细讲解了主类继承、窗口创建、布局管理、控件替换、... 目录最常用的“一行换一行”速查表(直接全局替换)实际转换示例(JFramejs → JavaFX)迁移建

MySQL快速复制一张表的四种核心方法(包括表结构和数据)

《MySQL快速复制一张表的四种核心方法(包括表结构和数据)》本文详细介绍了四种复制MySQL表(结构+数据)的方法,并对每种方法进行了对比分析,适用于不同场景和数据量的复制需求,特别是针对超大表(1... 目录一、mysql 复制表(结构+数据)的 4 种核心方法(面试结构化回答)方法 1:CREATE

Go异常处理、泛型和文件操作实例代码

《Go异常处理、泛型和文件操作实例代码》Go语言的异常处理机制与传统的面向对象语言(如Java、C#)所使用的try-catch结构有所不同,它采用了自己独特的设计理念和方法,:本文主要介绍Go异... 目录一:异常处理常见的异常处理向上抛中断程序恢复程序二:泛型泛型函数泛型结构体泛型切片泛型 map三:文

详解C++ 存储二进制数据容器的几种方法

《详解C++存储二进制数据容器的几种方法》本文主要介绍了详解C++存储二进制数据容器,包括std::vector、std::array、std::string、std::bitset和std::ve... 目录1.std::vector<uint8_t>(最常用)特点:适用场景:示例:2.std::arra

springboot中配置logback-spring.xml的方法

《springboot中配置logback-spring.xml的方法》文章介绍了如何在SpringBoot项目中配置logback-spring.xml文件来进行日志管理,包括如何定义日志输出方式、... 目录一、在src/main/resources目录下,也就是在classpath路径下创建logba

SQL Server中行转列方法详细讲解

《SQLServer中行转列方法详细讲解》SQL行转列、列转行可以帮助我们更方便地处理数据,生成需要的报表和结果集,:本文主要介绍SQLServer中行转列方法的相关资料,需要的朋友可以参考下... 目录前言一、为什么需要行转列二、行转列的基本概念三、使用PIVOT运算符进行行转列1.创建示例数据表并插入数