论文解读—— 基于边缘梯度方向插值和 Zernike 矩的亚像素边缘检测

论文:《 Subpixel edge detection based on edge gradient directional interpolation and Zernike moment》
地址: http://www.dpi-proceedings.com/index.php/dtcse/article/view/24488

摘要

在本文中,我们提出了一种基于边缘梯度方向插值和 Zernike 正交矩的新型亚像素边缘检测方法。由于对边缘邻域进行插值,所提出的方法能够丰富边缘信息,并确保矩模板内只有一个边缘。边缘信息的丰富不仅增加了基于矩的方法的检测精度,还增加了检测到的亚像素边缘点的数量。实验结果表明,该方法可以极大地提高边缘检测的准确性,并且在图像中存在复杂边缘时能够避免边缘干扰的问题。

一、引言

边缘检测是图像处理中的基本任务。传统基于梯度的边缘检测方法只能定位到像素级别的边缘。一般来说,通过增加采样频率可以提高边缘检测的准确性。然而,最大采样率受到物理设备条件的限制,无法无限增加。此外,在实际的工业应用中,成本也是一个重要的不可避免的考虑因素。这一问题导致了亚像素边缘检测算法的诞生。亚像素边缘检测可以理解为一种通过图像处理算法,在不改变摄像机系统硬件条件的情况下使边缘精度小于一个像素的方法。
早期的边缘检测算法是基于梯度的,通过计算局部梯度或导数的最大值来定位边缘点。其中最典型的算子包括 Sobel、Prewitt 和 Robert 算子。后来,Canny 综合了以前的工作,提出了一种基于非极大值抑制和形态连通操作的方法来寻找最优边缘。这种方法取得了良好的结果,并且在今天被广泛使用。其他的边缘检测算法包括 Malik 的边缘检测方法,这种方法很出色,但也比较复杂。其他像素级边缘检测算法可以在文献[6-8]中找到。对于亚像素边缘检测,目前流行的方法包括基于拟合的方法、基于矩的方法和基于插值的方法。拟合方法是通过拟合假设边缘模型的灰度值来解决亚像素边缘位置的方法,通常是基于高斯函数的边缘模型。插值方法的核心思想是通过插值像素的灰度值或灰度值的导数来增加边缘信息。二次插值算法简单且易于实现。特别是当光学系统的扩散函数是对称的时,插值边缘的检测精度很高。然而,其缺点是容易受到噪声的干扰。基于矩的方法的核心思想是利用图像的矩信息来解决边缘参数。矩有很多种,例如空间矩、Zernike 矩等。Ghosal 首先使用的 Zernike 矩方法只需要计算3个模板。计算量比空间矩小,精度也高。后来,Qu 提出了一个改进算法,通过增加 Zernike 矩的阶数或增加模板的大小来提高亚像素定位的准确性。
目前,通过矩方法检测亚像素已被证明是一种简单而准确的方法。即便如此,在实际应用中,并没有一种普遍适用的方法,精度仍有很大提升空间。基于矩的建模是基于图像边缘是理想的阶跃边缘的假设。为了提高检测精度,一个有效且简单的方法是增加矩的模板大小。然而,当模板内部存在复杂的边缘时,这些边缘可能会相互干扰,导致边缘定位错误。由于很难确保模板内只有一个边缘,如果模板内存在多个边缘,那么就需要重新对边缘进行建模。然而,经过分析,普遍重新对边缘进行建模不仅困难,而且很难获得准确的分析解决方案。通过严格的边缘参数重新建模图像边缘也很难找到尽可能多的亚像素边缘点。此外,基于严格的边缘参数重新建模后的阈值进行后续边缘过滤也非常复杂。随着硬件计算的快速加速,更精确的方法也随之而来。
通过总结亚像素边缘检测算法的优缺点,本文提出了一种改进方法。首先,基于像素级别获得边缘的粗略位置,并追踪边缘点的邻域。为了提高边缘的准确性,同时避免上述问题,本文提出通过在边缘邻域进行梯度方向的插值来丰富边缘信息。由于对边缘邻域进行了插值,扩大了矩模板进行卷积的区域。因此,能够确保模板内只有一个边缘,从而有效地避免了边缘之间的干扰。同时,丰富的边缘信息不仅增加了基于矩方法的检测准确性,还增加了检测到的亚像素边缘点的数量。此外,如果在插值后对邻域进行Canny像素级边缘定位操作,则可以检测到双边缘,这意味着可以获得具有厚度特性的亚像素边缘。最后,采用大规模掩模Zernike矩方法来检测邻域边缘并推导出亚像素级别的边缘参数。
本文的结构如下所述。第3节简要介绍了Zernike矩的原理。在第4节中,讨论了基于7*7掩模的Zernike矩的亚像素边缘检测,并给出了理论推导。第5节讨论了在边缘点邻域内的梯度插值方法。在第6节中,设计了两个实验来验证边缘亚像素定位的准确性以及复杂边缘定位的能力。最后,在第7节中给出了一些结论。

二、Zernike图像矩

在连续域中,可以证明一个函数可以用单位圆内的多项式的组合来描述,即 x 2 + y 2 ≤ 1 x^2 + y^2\le1 x2+y21。Zernike 多项式是一种正交完备的多项式,因此函数可以无冗余地描述。对于一幅图像 f ( x , y ) f(x,y) f(x,y) 的阶数为 n n n 且重复次数为 m m m的 Zernike 矩被定义为 [17]:
Z n m = n ⁣ + ⁣ 1 π ∬ x 2 + y 2 ≤ 1 f ( x , y ) V n m ∗ ( ρ , θ ) d x d y ( 1 ) Z_{n m}=\frac{n\!+\!1}{\pi}\iint_{x^{2}+y^{2}\le1}f(x,y)V_{n m}^{\ast}(\rho,\theta)d x d y \qquad(1) Znm=πn+1x2+y21f(x,y)Vnm(ρ,θ)dxdy(1)
在离散图像中,当 x 2 + y 2 ≤ 1 x^2 + y^2 \le 1 x2+y21 时, Z ( n m ) Z_(nm) Z(nm)可以如下表示,其中 n n n m m m 是非负整数。
Z n m = Σ x Σ y f ( x , y ) , V n m ∗ ( ρ , θ ) ( 2 ) Z_{n m}=\Sigma_x \Sigma_y f(x,y),V_{n m}^{\ast}(\rho,\theta) \qquad(2) Znm=ΣxΣyf(x,y),Vnm(ρ,θ)(2)
Zernike多项式 V n m V_{nm} Vnm可以表示为:
V n m = R n m ( ρ ) e i m θ , ∣ ρ ∣ ≤ 1 ( 3 ) V_{nm}=R_{nm}(\rho)e^{i m\theta},|\rho|\leq1 \qquad(3) Vnm=Rnm(ρ)eimθ,ρ1(3)

其中 R n m ( ρ ) R_{nm}(\rho) Rnm(ρ)是径向函数,当 n − m n-m nm是奇数时, R n m ( ρ ) = 0 R_{nm}(\rho)=0 Rnm(ρ)=0。当 n − m n-m nm是偶数时, R n m ( ρ ) R_{nm}(\rho) Rnm(ρ)可以表示为:
R n m ( ρ ) = Σ k = 0 ( n − ∣ m ∣ ) / 2 ( − 1 ) k ( n − k ) ! k ! ( n + ∣ m ∣ 2 − k ) ! ( n − ∣ m ∣ 2 − k ) ! ρ n − 2 k ( 4 ) R_{n m}(\rho)=\Sigma_{k=0}^{(n-|{\bf m}|)/2}\frac{(-1)^{k}(n-k)!}{k!(\frac{n+|{\bf m}|}{2}-k)!(\frac{n-|{\bf m}|}{2}-k)!}\rho^{n-2k} \qquad(4) Rnm(ρ)=Σk=0(nm)/2k!(2n+mk)!(2nmk)!(1)k(nk)!ρn2k(4)

结合方程 (2) 和 (3) 计算 Zernike 多项式。因此,我们可以通过查表来找到 Zernike 多项式 V n m V_{nm} Vnm。根据方程 (2),我们可以轻松地计算图像 f ( x , y ) f(x,y) f(x,y)的 Zernike 矩。此外,Zernike 矩具有一个重要的特性,即旋转不变性,即:

Z n m ′ = Z n m e − i m ϕ ( 5 ) Z_{n m}^{\prime}=Z_{n m e}^{}-i m\phi \qquad(5) Znm=Znmeimϕ(5)

其中 Z n m ′ Z_{nm}^{\prime} Znm 是旋转后图像的 Zernike 矩, Z n m Z_{nm} Znm是原始图像的 Zernike 矩。方程 (5) 显示了图像旋转后 Zernike 矩的变化,即旋转后图像的 Zernike 矩的大小,而原始图像的 Zernike 矩不会改变。

基于Zernike Moment的边缘检测

为了定位亚像素边缘位置,建立一个2-D单位圆模型,其中有一个理想的阶跃边缘。正如图1所示, k k k是阶跃的高度, h ℎ h是背景的高度, l l l是边缘与单位圆中心之间的距离。当理想的边缘线旋转时,它将垂直于 x x x轴。接下来,我们将使用Zernike矩来计算这组边缘位置参数,即 h 、 k 、 l ℎ、k、l hkl

在这里插入图片描述

图1. 亚像素边缘检测的理想模型。

在这里插入图片描述
图2. Zernike 7*7掩码模型。

现在假设这个模型是 f ( x , y ) f(x,y) f(x,y),根据方程(2)和方程(5)计算其旋转的 Zernike 矩 7。解方程得到$ ℎ,k,l$ 的值
k = 3 Z ′ 2 ( 1 − l 2 2 ) 3 / 2 ( 6 ) k={\frac{3Z^{\prime}}{2(1-l_{2}^{2})^{3/2}}} \qquad(6) k=2(1l22)3/23Z(6)
h = 1 π [ Z 00 − k π 2 + k a r c s i n ( l 2 ) + k l 2 1 − l 2 2 ] ( 7 ) h=\frac{1}{\pi}\Big[Z_{00}-\frac{k\pi}{2}+k a r c s i n(l_{2})+k l_{2}\sqrt{1-l_{2}^{2}}\Big]\qquad(7) h=π1[Z002+karcsin(l2)+kl21l22 ](7)
l = l 1 + l 2 2 = 1 2 [ 5 Z 40 ′ + 3 Z 20 ′ 8 Z 20 ′ + 5 Z 11 ′ + Z 11 ′ 6 Z 11 ′ ] ( 8 ) l=\frac{l_{1}+l_{2}}{2}=\frac{1}{2}\Biggl[\sqrt{\frac{5Z_{40}^{\prime}+3Z_{20}^{\prime}}{8Z_{20}^{\prime}}}+\sqrt{\frac{5Z_{11}^{\prime}+Z_{11}^{\prime}}{6Z_{11}^{\prime}}}\Biggr]\qquad(8) l=2l1+l2=21[8Z205Z40+3Z20 +6Z115Z11+Z11 ](8)
ϕ = arctan ⁡ [ I m [ Z n 1 ] R e [ Z n 1 ] ] ( 9 ) \phi=\arctan\left[\frac{I m[Z_{n1}]}{R e[Z_{n1}]}\right]\qquad(9) ϕ=arctan[Re[Zn1]Im[Zn1]](9)

如上所述,我们推导出边缘参数 h , k , l h,k,l h,k,l ϕ \phi ϕ。因此,边缘在单位圆内的亚像素位置可以标记为
[ x s y s ] = [ x + l cos ⁡ ( ϕ ) y + l sin ⁡ ( ϕ ) ] ( 10 ) \left[{\begin{array}{c}{x_{s}}\\ {y_{s}}\end{array}}\right]={\left[\begin{array}{c}{x+l\cos(\phi)}\\ {y+l\sin(\phi)}\end{array}\right]}\qquad(10) [xsys]=[x+lcos(ϕ)y+lsin(ϕ)](10)

然而, ( x , y ) (x,y) (x,y)在实际的离散图像中,我们使用 N ∗ N N*N NN像素范围来近似单位圆,如图2所示。单位圆被划分为 7 ∗ 7 7*7 77个区域。上述计算结果基于单位圆内的 7 ∗ 7 7*7 77区域。我们将实际图像上每个点的像素值放入单位圆的 7 ∗ 7 7*7 77区域中,以计算亚像素边缘参数。但实际上,将一个像素划分为 7 ∗ 7 7*7 77个邻域是不可能的。因此,从单位圆导出的边缘位置参数 l l l最终要乘以缩放因子 N / 2 N/2 N/2。只有这样,才能检测到图像边缘的亚像素位置。
S u b p i x e l = [ y s X s ] = = [ x + l N 2 cos ⁡ ( ϕ ) y + l N 2 sin ⁡ ( ϕ ) ] ( 11 ) Subpixel=\left[_{y_{s}}^{X_{s}}\right]=={\left[\begin{array}{l}{x+{\frac{l N}{2}}\cos(\phi)}\\ {y+{\frac{l N}{2}}\sin(\phi)}\end{array}\right]}\qquad(11) Subpixel=[ysXs]==[x+2lNcos(ϕ)y+2lNsin(ϕ)](11)

从以上讨论可以得知,通过推导图像的 M n 1 M_{n1} Mn1阶矩,可以使用方程(9)计算;然后,我们推导出图像的其他Zernike矩,并得到旋转后的图像Zernike矩。最后,我们通过方程(7)、(6)、(8)获得边缘参数 h , k , l h,k,l h,k,l。因此,在图像的 N ∗ N N*N NN区域内计算Zernike矩非常重要,这将决定整个检测的准确性。
为了近似图像的Zernike矩,我们构建了一系列的掩模,可以通过下面公式来导出:
M n m ( i , j ) = ∬ Ω i , j = C ∩ S i , j V n m ∗ ( ρ , θ ) d x d y ( 12 ) M_{n m}(i,j)=\textstyle\iint_{\Omega_{i,j}=C\cap S_{i,j}}V_{n m}^{*}(\rho,\theta)\,dx\,dy\qquad(12) Mnm(i,j)=Ωi,j=CSi,jVnm(ρ,θ)dxdy(12)

Zernike多项式是通过查找方程式(3)获得的,用于计算图像Zernike矩的掩模是通过Matlab计算获得的。将图像的每个点的N*N区域与这些掩模进行卷积,得到M

最后,通过将M
代入方程(6)(8)(7)(9)中,我们可以得到边缘的参数 h , k , l ℎ,k,l h,k,l的和。通过设置特征阈值 l T , k T l_T,k_T lT,kT(如方程(13)(14)所示),我们可以过滤出特定的边缘位置或确保检测准确性。
l ≤ l T ( 13 ) l\leq l_{T}\qquad(13) llT(13)
k ≥ k T ( 14 ) k\geq k_{T}\qquad(14) kkT(14)

基于方向插值的亚像素边缘检测

与连续域中的讨论不同,由于图像的离散性,亚像素边缘的检测必然会存在误差。使用 Zernike 矩来定位边缘的亚像素,主要误差的原因是 M n m M_{nm} Mnmmask 的大小。如果图像只有简单且稀疏的边缘,大尺寸的 mask 可以带来高精度。然而,正如在第1节中提到的,如果图像中存在彼此相邻的复杂边缘,边缘检测中将会出现误差。
A c c u r a c y ∝ N ( 15 ) Accuracy\propto N \qquad(15) AccuracyN(15)
此外,当掩模覆盖区域内的边缘信息较少时,描绘细节的能力也较差。

为了克服这一限制,本文提出了一种改进的亚像素边缘检测算法。其原理是根据边缘的梯度方向进行插值,丰富其位置信息,使得大尺寸的 Zernike 矩掩模可以发挥其准确的边缘定位能力。

Canny 算法被应用于近似边缘点。边缘点的梯度 f ( x , y ) f(x,y) f(x,y)可以表示为:
g r a d f ( x , y ) = ∇ f ( x , y ) = { ∂ f ( x , y ) ∂ x , ∂ f ( x , y ) ∂ y } ( 16 ) gradf(x,y)=\nabla f(x,y)=\left\{\frac{\partial f(x,y)}{\partial x},\frac{\partial f(x,y)}{\partial y}\right\}\qquad(16) gradf(x,y)=f(x,y)={xf(x,y),yf(x,y)}(16)

边缘点场的梯度方向插值可以表示为
x t = ⌊ C t ∂ f ( x , y ) ∂ x ⌋ , y t = ⌊ C t ∂ f ( x , y ) ∂ y ⌋ ( 17 ) x_{t}=\left\lfloor C_{t}{\frac{\partial f(x,y)}{\partial x}}\right\rfloor,y_{t}=\left\lfloor C_{t}{\frac{\partial f(x,y)}{\partial y}}\right\rfloor\qquad(17) xt=Ctxf(x,y),yt=Ctyf(x,y)(17)

在公式17中, x t , y t x_t,y_t xt,yt表示边缘点在 N ∗ N N*N NN域中在x方向和y方向上的扩展次数, C t C_t Ct是一个常数, ⌊ ⌋ ⌊⌋ 符号表示向上取整。
应用图3中显示的双线性插值方法对边缘点进行扩展。如图4所示,如果插值后的图像经过Canny检测,则可以获得双边缘信息。通过与原始边缘的映射信息,可以找到原始边缘的双边缘信息。这将进一步增加边缘亚像素的检测深度,并获得原始边缘更丰富的亚像素信息。
S u b p i x e l = [ x s y s ] = [ x / x t + l N 2 x t cos ⁡ ( ϕ ) y / y t + l N 2 y t sin ⁡ ( ϕ ) ] ( 18 ) Subpixel=\left[{\begin{array}{l}{x_{s}}\\ {y_{s}}\end{array}}\right]=\left[{\begin{array}{c}{x/x_{t}+{\frac{l N}{2x_{t}}}\cos(\phi)}\\ {y/y_{t}+{\frac{l N}{2y_{t}}}\sin(\phi)}\end{array}}\right]\qquad(18) Subpixel=[xsys]=[x/xt+2xtlNcos(ϕ)y/yt+2ytlNsin(ϕ)](18)
如图4所示,如果经过插值处理的图像经过Canny边缘检测,就可以获得双边缘信息。通过与原始边缘的映射信息,可以找到原始边缘的双边缘信息。这将进一步增加边缘亚像素的检测深度,并获得原始边缘更丰富的亚像素信息。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/758093.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PowerShell 一键更改远程桌面端口

前言 提高工作效率,安全性和规范化,最终实现一键更改Windows 远程桌面端口 前提条件 开启wmi,配置网卡,参考 一键更改远程桌面端口自动化脚本 默认端口3389变更后的端口3390win+r mstsc YOU_ip常规更改的连接方式win+r mstsc YOU_ip:3390需要恢复到原来的端口3390更改成3…

【java】java环境变量分类

测试代码&#xff1a; public class TestSys {public static void main(String[] args) {/*** 获取所有的系统环境变量*/Map<String, String> map System.getenv();map.forEach((key, value) -> System.out.printf("env&#xff1a;key:%s->value:%s%n"…

CPU的Cache和MESI协议

前言 大家好我是jiantaoyab&#xff0c;这是我所总结作为学习的笔记第20篇&#xff0c;在这里分享给大家&#xff0c;这篇文章讲CPU的Cache和MESI协议。 为什么需要高速缓存&#xff1f; 通过图片可以清晰的看到&#xff0c;随着时间的发展CPU的性能差距和内存越来越大&#…

使用光标精灵更换电脑鼠标光标样式,一键安装使用

想要让自己在使用电脑时更具个性化&#xff0c;让工作和娱乐更加愉快&#xff0c;改变你的电脑指针光标皮肤可能是一个简单而有效的方法。很多人或许并不清楚如何轻松地调整电脑光标样式&#xff0c;下面我就来分享一种简单的方法。 电脑光标在系统里通常只有几种默认图案&…

SpringBoot项目通过触发器调度实现定时任务

文章目录 前言一、quartz是什么&#xff1f;二、quartz中核心概念三、集成步骤1.引入依赖2.demo样例a.定义一个任务参数实体类b.定义操作触发器、定时任务接口及实现c.作业实现d.结果截图 四、其他1.QuartzJobBean和Job区别2.注意事项3.作业&#xff08;Job&#xff09;和触发器…

飞腾D2000+复旦微 ARM+FPGA+预装麒麟 全国产化COMe模块

产品概述 COMe-D2000核心模块满足PICMG COM Express Type-6 Rev2.1标准规范&#xff0c;遵从COMe BASIC尺寸标准&#xff0c;采用加固设计方案&#xff0c;内存和SSD存储均采用板贴方式&#xff0c;增强了可靠性&#xff0c;体积也得到良好控制。COMe-F662采用国产飞腾腾锐D200…

黑马程序员——javase进阶——day11——字符流,编码表,对象流,其他流

目录&#xff1a; 编码表 思考编码表介绍编码表小结字节流读中文出现码的原码字符输出流 字符流输出介绍FileWriter的成员FileWriter写数据的步骤字符输出流练习字符输入流 字节输入流介绍FileReader的成员字符缓冲流 字符缓冲流字符缓冲流特有的功能字符缓冲流练习转换流 转换…

IO多分复用

#include<myhead.h> #define SER_PORT 8888 //服务器端口号 #define SER_IP "192.168.65.131" //服务器IPint main(int argc, const char *argv[]) {//1、创建一个套接字int sfd -1;sfd socket(AF_INET, SOCK_STREAM, 0); //参数1&#xff1a;…

MyBatis是纸老虎吗?(四)

在《MyBatis是纸老虎吗&#xff1f;&#xff08;三&#xff09;》这篇文章中我们一起梳理了MyBatis配置文件的解析流程&#xff0c;并详细介绍了其中的一些常见节点的解析步骤。通过梳理&#xff0c;我们弄清楚了MyBatis配置文件中的一些常用配置项与Java Bean之间的对应关系&a…

交叉注意力融合时域、频域特征的FFT + CNN -BiLSTM-CrossAttention电能质量扰动识别模型

往期精彩内容&#xff1a; 电能质量扰动信号数据介绍与分类-Python实现-CSDN博客 Python电能质量扰动信号分类(一)基于LSTM模型的一维信号分类-CSDN博客 Python电能质量扰动信号分类(二)基于CNN模型的一维信号分类-CSDN博客 Python电能质量扰动信号分类(三)基于Transformer…

AI浸入社交领域,泛娱乐APP如何抓住新风口?

2023年是大模型技术蓬勃发展的一年&#xff0c;自ChatGPT以惊艳姿态亮相以来&#xff0c;同年年底多模态大模型技术在国内及全球范围内的全面爆发&#xff0c;即模型能够理解并生成包括文本、图像、视频、音频等多种类型的内容。例如&#xff0c;基于大模型的文本到图像生成工具…

实战纪实 | 从接口信息泄露到RCE

打点 开局一个登录框 信息收集 发现了一处接口泄露了部分信息 不过只有支付宝密钥的信息无法扩大危害&#xff0c;此时尝试寻找了一下其他同类型系统同样的接口&#xff0c;查看一下是否泄露的信息相同 因为如果相同就说明是静态的&#xff0c;没有价值 横向收集 此时访问其…

后端系统开发之——接口参数校验

今天难得双更&#xff0c;大家点个关注捧个场 原文地址&#xff1a;后端系统开发之——接口参数校验 - Pleasure的博客 下面是正文内容&#xff1a; 前言 在上一篇文章中提到了接口的开发&#xff0c;虽然是完成了&#xff0c;但还是缺少一些细节——传入参数的校验。 即用户…

JMeter 并发测试和持续性压测详解

并发测试和持续性压测都是评估系统性能的常用方法&#xff0c;它们可以帮助开发人员发现并解决系统中的性能问题。本文来详细介绍下。 概念 并发测试&#xff1a; 旨在评估系统在同时处理多个用户请求时的性能。在这种 测试 中&#xff0c;系统会暴露于一定数量的用户负载下&…

【双指针】算法例题

目录 二、双指针 25. 验证回文数 ① 26. 判断子序列 ① 27. 两数之和II - 输入有序数组 ② 28. 盛最多水的容器 ② 29. 三数之和 ② 二、双指针 25. 验证回文数 ① 如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后&#xff0c;短语正着读和反着读都一…

行业回暖?这个行业岗位需求飙升6倍!程序员们提前恭喜了!

前言 随着今年史上最长春节假期正式收官&#xff0c;各行各业相继进入开工节奏&#xff0c;就业市场开启持续升温模式。 今年开工首周&#xff0c;人才需求增长明显&#xff0c;求职者活跃度大大增多&#xff0c;就业市场进入了繁忙有序的节奏&#xff0c;呈现出春招市场的勃…

QT网络编程之获取本机网络信息

一.概述 查询一个主机的MAC地址或者IP地址是网络应用中常用到的功能&#xff0c;Qt提供了QHostInfo和QNetworkInterface 类可以用于此类信息的查询 1.QHostInfo 类&#xff08;显示和查找本地的信息&#xff09; 2.QNetworkInterface 类&#xff08;获得应用程序上所在主机的…

在window命令行中,使用conda创建新的虚拟环境时出现的问题以及解决办法

一.出现的问题 C:\Users\zhu>conda create -n ML python3.8 Collecting package metadata (current_repodata.json): failedCondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/win-64/current_repodata.js…

南京大学AI考研,宣布改考408!

官网还没通知 附上南大与同层次学校近四年的分数线对比&#xff0c;整体很难 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; 如果确定要冲南大的话建议提早调整自己的复习路线&…

Combining external-latent attention for medical image segmentation

结合外部潜在注意的医学图像分割 摘要 注意机制是提高医学图像分割性能的新切入点。如何合理分配权重是注意力机制的关键,目前流行的方法包括全局压缩和使用自注意操作的非局部信息交互。然而,这些方法过于关注外部特征,缺乏对潜在特征的开发。全局压缩方法通过全局均值或…