当前位置: 首页 > news >正文

质量图导向法解包裹之---计算边缘可靠性

在这之前需要我们知道像素点的可靠性

% 这反映了相位变化的平滑程度。以下是一个可能的实现,它使用了二阶差分来计算可靠性:
function rel = calculateReliability(wrappedPhase)% 应用高斯滤波减少噪声filteredImg = imgaussfilt(wrappedPhase, 2); % '2' 是高斯核的标准差rel = zeros(size(filteredImg));% 获取移动后的图像 (N-2, N-2)img_im1_jm1 = filteredImg(1:end-2, 1:end-2);img_i_jm1   = filteredImg(2:end-1, 1:end-2);img_ip1_jm1 = filteredImg(3:end  , 1:end-2);img_im1_j   = filteredImg(1:end-2, 2:end-1);img_i_j     = filteredImg(2:end-1, 2:end-1);img_ip1_j   = filteredImg(3:end  , 2:end-1);img_im1_jp1 = filteredImg(1:end-2, 3:end  );img_i_jp1   = filteredImg(2:end-1, 3:end  );img_ip1_jp1 = filteredImg(3:end  , 3:end  );% 计算差分gamma = @(x) sign(x) .* mod(abs(x), pi); % 一次差分算法H  = gamma(img_im1_j   - img_i_j) - gamma(img_i_j - img_ip1_j  );V  = gamma(img_i_jm1   - img_i_j) - gamma(img_i_j - img_i_jp1  );D1 = gamma(img_im1_jm1 - img_i_j) - gamma(img_i_j - img_ip1_jp1);D2 = gamma(img_im1_jp1 - img_i_j) - gamma(img_i_j - img_ip1_jm1);% 计算二次差分的和D = sqrt(H.*H + V.*V + D1.*D1 + D2.*D2);% 可信度定义为二次差分的倒数rel(2:end-1, 2:end-1) = 1./D;% 处理异常值,例如将非常高的可靠性值限制在一个阈值内maxReliability = 200; % 可以根据需要调整这个值rel(rel > maxReliability) = maxReliability;% 将所有空值和原图中的非空值赋值为0rel(isnan(rel) & ~isnan(filteredImg)) = 0;% 将原图中的空值在可信度中也赋值为空rel(isnan(filteredImg)) = nan;% 对可靠性结果进行平滑处理rel = imgaussfilt(rel, 1); % 使用高斯滤波平滑
end

要功能是计算包裹相位图像(wrappedPhase)的可靠性。这种可靠性计算对于相位图像处理是非常重要的,尤其是在如相位展开或高精度测量等应用中。以下是详细步骤分析:

  1. 高斯滤波降噪:

    • 使用高斯滤波器处理包裹相位图像,减少噪声对后续可靠性计算的影响。这一步是预处理,旨在改善数据的质量。
  2. 计算一阶差分:

    • 对滤波后的图像进行一阶差分计算。这包括沿不同方向(水平、垂直及对角线)的相邻像素间的差分。
    • 使用的 gamma 函数处理差分值,保证差分结果落在合适的范围内(例如,对于相位值,这通常是π)。
  3. 二阶差分的计算:

    • 通过结合不同方向的一阶差分计算二阶差分。二阶差分可以视为相邻像素差分的差分,提供了更细微的局部变化信息。
  4. 可靠性的定义:

    • 将二阶差分的平方和的平方根的倒数定义为可靠性。这种方式认为,当相邻像素间的差分较小(即图像在该区域较为平滑),可靠性较高。
  5. 处理异常值:

    • 对于非常高的可靠性值,将其限制在一个预设的阈值内,避免因极端值导致的可靠性评估失真。
  6. 空值处理:

    • 将原始图像中非空值对应的可靠性矩阵中的空值设为0,并保留原始图像中的空值。
  7. 结果平滑处理:

    • 使用高斯滤波平滑处理最终的可靠性结果,以提高结果的一致性。

总的来说,这段代码通过计算二阶差分来评估包裹相位图像的局部可靠性,这对于确保相位展开等后续处理的准确性至关重要。通过这种方法,可以识别出图像中可靠性较高的区域,这些区域通常在相位展开或分析中更为可信。

在图像处理中,边缘是像素值发生显著变化的地方,通常对应于图像特征如线条、边界等。这里的方法是通过计算相邻像素间的可靠性来估算这些边缘的显著性。 


function [h_edges, v_edges] = get_edges(rel)
[Ny, Nx] = size(rel);
h_edges = [rel(1:end, 2:end) + rel(1:end, 1:end-1), nan(Ny, 1)];%补一行空值
v_edges = [rel(2:end, 1:end) + rel(1:end-1, 1:end); nan(1, Nx)];%补一列空值
end
  1. 水平边缘可靠性(h_edges:

    • 对于每个像素,将其与其右侧相邻像素的可靠性值相加。
    • 这意味着 h_edges 中的每个元素代表了一对水平相邻像素的综合可靠性。
    • 在最后,由于图像的最右侧像素没有右侧邻居,因此在 h_edges 的最右侧列上补充 NaN
  2. 垂直边缘可靠性(v_edges:

    • 类似地,对于每个像素,将其与其下方相邻像素的可靠性值相加。
    • v_edges 中的每个元素表示一对垂直相邻像素的综合可靠性。
    • 在最后,由于图像的最底部像素没有下方邻居,因此在 v_edges 的最底部行上补充 NaN

原理解释:

  • 这种计算方法基于这样一个假设:边缘的可靠性可以通过相邻像素的可靠性之和来估计。如果两个相邻像素都具有高可靠性,那么它们之间的边缘也被认为是可靠的。
  • 通过这种方法,可以在图像处理任务中,如边缘检测或特征提取,快速地识别出哪些边缘是可靠的。

相关文章:

质量图导向法解包裹之---计算边缘可靠性

在这之前需要我们知道像素点的可靠性 % 这反映了相位变化的平滑程度。以下是一个可能的实现,它使用了二阶差分来计算可靠性: function rel calculateReliability(wrappedPhase)% 应用高斯滤波减少噪声filteredImg imgaussfilt(wrappedPhase, 2); % 2 …...

C# WPF上位机开发(进度条操作)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 软件上面如果一个操作比较缓慢,或者说需要很长的时间,那么这个时候最好添加一个进度条,提示一下当前任务的进展…...

vulnhub-Tre(cms渗透)

靶机和kali都使用net网络,方便探测主机获取ip1.靶机探测 使用fping扫描net网段 靶机ip:192.168.66.130 2.端口扫描 扫描发现该靶机三个端口,ssh,还有两个web,使用的中间件也是不一样的,一个是apache&…...

Re解析(正则表达式解析)

正则表达式基础 元字符 B站教学视频: 正则表达式元字符基本使用 量词 贪婪匹配和惰性匹配 惰性匹配如下两张图,而 .* 就表示贪婪匹配,即尽可能多的匹配到符合的字符串,如果使用贪婪匹配,那么结果就是图中的情况三 p…...

HTML输出特殊字符详细方法

以下是部分特殊字符代码表,它们的完整应用代码格式为:&#;用下面的四位数字替换,将得到对应的符号。(注意:应用这些代码,编辑器应该切换到HTML模式) ☏260f ☎260e ☺263a ☻263b ☼263c ☽…...

《漫画算法》笔记——计算两个大数的和

例题: 输入:“123”,“234” 输出:“357” 思路: 使用数组,分别计算每一位上的加和,注意记录进位信息。 然后,将数组恢复成字符串,输出。 值得注意的是,加和…...

Python3.13版本改进规划

大家好,最近faster-cpython 项目的文档介绍了关于 Python 3.13 的规划,以及在 3.13 版本中将要实现的一些优化和改进。faster-python 是 Python 的创始人 Guido van Rossum 和他的团队提出的计划 ,目标是在四年内将 CPython 的性能提升五倍。…...

aws配置以及下载 spaceNet6 数据集

一:注册亚马逊账号 注册的时候,唯一需要注意的是信用卡绑定,这个可以去淘宝买,搜索aws匿名卡。 注册完记得点击登录,记录一下自己的账户ID哦! 二:登录自己的aws账号 2.1 首先创建一个用户 首…...

进阶之路:高级Spring整合技术解析

Spring整合 1.1 Spring整合Mybatis思路分析1.1.1 环境准备步骤1:准备数据库表步骤2:创建项目导入jar包步骤3:根据表创建模型类步骤4:创建Dao接口步骤5:创建Service接口和实现类步骤6:添加jdbc.properties文件步骤7:添加Mybatis核心配置文件步骤8:编写应用程序步骤9:运行程序 1.…...

【ArcGIS微课1000例】0081:ArcGIS指北针乱码解决方案

问题描述: ArcGIS软件在作图模式下插入指北针,出现指北针乱码,如下图所示: 问题解决 下载并安装字体(配套实验数据包0081.rar中获取)即可解决该问题。 正常的指北针选择器: 专栏介绍&#xff…...

uniapp运行到手机模拟器

第一步,下载MUMU模拟器 下载地址:MuMu模拟器官网_安卓12模拟器_网易手游模拟器 (163.com) 第二步,运行mumu模拟器 第三步,运行mumu多开器 第三步,查看abs 端口 第四步,打开HBuilder,如下图,将…...

基于PHP的蛋糕购物商城系统

有需要请加文章底部Q哦 可远程调试 基于PHP的蛋糕购物商城系统 一 介绍 此蛋糕购物商城基于原生PHP开发,数据库mysql,前端bootstrap。系统角色分为用户和管理员。 技术栈:phpmysqlbootstrapphpstudyvscode 二 功能 用户 1 注册/登录/注销…...

嵌入式中的定时器概念

定时器概述 定时器是嵌入式系统中常用的一种外设,它可以产生一定的时间间隔、延时、定时等功能,广泛应用于定时、计数、脉冲宽度调制(PWM)等领域。 具体而言,定时器可以实现以下功能: 计时:定时器可以用来实现延时操作,例如等待外部设备的稳定、等待数据的接收等,也可以…...

鸿蒙ArkTS语言介绍与TS基础语法

1、ArkTS介绍 ArkTS是HarmonyOS主力应用开发语言,它在TS基础上,匹配ArkUI框架,扩展了声明式UI、状态管理等响应的能力,让开发者以更简洁、更自然的方式开发跨端应用。 JS 是一种属于网络的高级脚本语言,已经被广泛用…...

08_CMDB系统开发二

CMDB系统开发二 一、用户组管理模块 1、展示用户组列表 Django自带了用户表,同时也带了用户组表。他们是多对多关系。用户组模型很简单,和User模型是多对多的关系。用户组顾名思义,就是对用户进行了分组。其作用在权限控制中就是可以批量的…...

JavaOOP篇----第九篇

系列文章目录 文章目录 系列文章目录前言一、java中是值传递引用传递?二、实例化数组后,能不能改变数组长度呢?三、假设数组内有5个元素,如果对数组进行反序,该如何做?四、形参与实参区别前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一…...

华为OD机试 - 区间交集 - 深度优先搜索dfs算法(滥用)(Java 2023 B卷 200分)

目录 专栏导读一、题目描述二、输入描述三、输出描述备注用例1、输入2、输出3、说明 四、解题思路1、核心思路:2、具体步骤 五、Java算法源码再重新读一遍题目,看看能否优化一下~解题步骤也简化了很多。 六、效果展示1、输入2、输出3、说明 华为OD机试 2…...

德人合科技 | 防止公司电脑文件数据资料外泄,自动智能透明加密保护系统

【透明加密软件】——防止公司电脑文件数据资料防止外泄,自动智能透明加密保护内部核心文件、文档、图纸、源代码、音视频等资料! PC端访问地址: www.drhchina.com 🌟 核心功能: 透明加密:采用高级加密算…...

常见加解密算法分析(含使用场景)

加密算法主要分为三类:对称加密算法、非对称加密算法和散列算法。下面将分别介绍这些类别中的常见算法及其特点和使用场景。 对称加密算法 1. AES (Advanced Encryption Standard) 简介: AES是一种广泛使用的对称加密标准,可以使用128、19…...

Oracle基本的SQL语句

1.最基本的增删改查 1.1.新增 insert 1.1.1.单表新增 INSERT INTO table_count_output (data_date,table_name,table_count ) VALUES (2023-03-15,FMCUSLVL,351 );COMMIT; 1.1.2.关联新增 INSERT INTO table_count_output (data_date,table_name,table_count )SELECTdata_…...

XCTF-web-easyupload

试了试php,php7,pht,phtml等,都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接,得到flag...

CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型

CVPR 2025 | MIMO:支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题:MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者:Yanyuan Chen, Dexuan Xu, Yu Hu…...

PHP和Node.js哪个更爽?

先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...

Python:操作 Excel 折叠

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析

这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...

渲染学进阶内容——模型

最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...

相机从app启动流程

一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...

Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)

引言:为什么 Eureka 依然是存量系统的核心? 尽管 Nacos 等新注册中心崛起,但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制,是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...

【决胜公务员考试】求职OMG——见面课测验1

2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)

在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...