指纹图像预处理
指纹图像预处理是指纹识别的前提,它的好坏直接影响到指纹识别的成败,但由于指纹图像降质带来的困难,并根据指纹图像的特征提出了合理的假设,再根据假设提出了增强指纹图像对比度的算法、提取指纹有效区域的算法、根据方向信息分割图像的算法以及去除图像中气泡噪声的算法,这些算法处理效果好,能有效地解决指纹图像的预处理问题。
用Matlab实现这种方法,既能分步对指纹图像预处理算法进行仿真测试,又可以很直观地看到图像预处理算法的效果。实验证明,用Matlab实现的处理结果比较理想,满足识别的应用性。本文介绍用matlab实现了指纹图像的对比度增强、有效区域的选取、指纹图像的二值化、指纹的特征值提取等。并选取较好的处理步骤和算法参数解决指纹图像预处理的问题。
指纹是人类手指末端指腹上由凹凸的皮肤所形成的纹路。指纹能使手在接触物件时增加摩擦力,从而更容易发力及抓紧物件。是人类进化过程式中自然形成的。目前尚未发现有不同的人拥有相同的指纹,所以每个人的指纹也是独一无二[1]。由于指纹是每个人独有的标记,近几百年来,罪犯在犯案现场留下的指纹,均成为警方追捕疑犯的重要线索[2],使得指纹识别技术得到了飞快的发展。现今鉴别指纹方法已经电脑化,使鉴别程序更快更准。
指纹识别技术源于19世纪初,科学家依靠指纹纹脊式样的唯一性和式样终生不改变的特性[7],把某个人同他的指纹对应起来,通过采集他的指纹并与预先保存的指纹进行比较来验证其真实身份。随着现代科技的不断进步与广泛应用,可靠高效的个人身份识别变得越来越需要,每个人的指纹具有惟一性,终身不变,难以伪造,因此指纹识别是替代传统身份识别手段的最安全、最可靠、最方便的方法[1]。指纹图像本身的信息量和数据量是很大的因此直接基于指纹图象的匹配识别是不可取的,而要采用专门高教的指纹识别与处理方法。
指纹识别的一般过程是指纹图象预处理、指纹特征提取和特征匹配。但由于采集设备噪声干扰、指纹采集时手指皮肤的干燥程度、汗渍、污渍等原因使待分析的指纹图像噪声较多并对细节点有较强干扰,影响指纹的特征提取[16]。指纹图像是通过将模拟信号采样量化后,以矩阵形式存入计算机,图像平滑处理指纹图像生成方向数组后,为了消除较强烈的局部噪声干扰,需要对生成的方向数组图像进行预处理。预处理是指纹识别的前提,也是整个工作的基础,因此指纹图象预处理工作的好坏直接关系到指纹特征提取的可行性和准确性。
指纹是手指末端正面皮肤上凹凸不平产生的纹路,这些纹路就是通常所说的脊和谷[4]。指纹虽小,但它蕴涵了大量信息。其中,包括纹型在内的全局特征,为指纹的分类提供了基础;同样,指纹还有许多局部特征(根据美国国家标准局规定,包括脊末梢、分岔点、复合特征和未定义四种),称为细节点(Minutia)。不同人的指纹的细节点是唯一的、稳定不变的,这为指纹识别提供了可能。目前,最常用的方法是用FBI提出的指纹细节点模型来做细节匹配[2]。而最常用的细节特征有脊末梢和分支点两种。
基于点模式匹配的自动指纹识别系统(AFIS)的基本流程一般由图像采集、图像预处理、细节点提取和指纹匹配几部分组成。
首先,指纹要通过指纹采集设备(常见的有光学取像设备、超声波扫描取像设备、晶体传感器,现在广泛使用的是晶体传感器)转化为计算机内的数字图像(一般为灰度图)。由于采集过程中难免因手指或仪器的原因而使图像存在较多的噪声,所以为了使图像更清晰以便于后续特征提取,必须对采集到的图像进行增强和滤波,并进一步二值化、细化[5]。
之后,在细化后的点线图上提取特征值,删除伪特征值,最终得到用于匹配的细节点。采集到的图像细节点与模板中的细节点进行比对,最终完成指纹匹配。各个环节环环相扣,对整个系统都起着十分重要的作用。本文着重研究了图像预处理和细节特征提取这两个关键部分。
而在指纹采集过程中,不可避免的会引入各种噪声,如图像中的叉连、断点等,这些噪声对指纹特征信息的提取造成一定的影响,甚至会产生许多伪特征点。因此在提取指纹特征之前,需要对指纹图像进行滤波处理,以去除无用信息,增强有用信息。在得到增强的灰度图后,需要将其进一步二值化,便于后续过程的处理。指纹图像预处理是去除指纹图像中的噪声,使指纹图像清晰、边缘明显,以便于提高提取和存储特征点的准确率。包括指纹区域检测、图像质量判断、方向图和频率估计、图像增强、指纹图像二值化和细化等[9]。
指纹图像获取是通过专门的指纹采集仪可以采集活体指纹图像。目前,指纹采集仪主要有活体光学式、电容式和压感式。对于分辨率和采集面积等技术指标,公安行业已经形成了国际和国内标准,但其他还缺少统一标准。根据采集指纹面积大体可以分为滚动捺印指纹和平面捺印指纹,公安行业普遍采用滚动捺印指纹。另外,也可以通过扫描仪、数字相机等获取指纹图像。
指纹图像只有脊和谷之分, 因此完全可以由二值图象来描述,也就是指纹图像的二值化。目前指纹的二值化不外乎两种方法[13], 一种是固定门限法, 另一种是动态门限法。固定门限法是对整幅图象用一个灰度门限值, 它对输入图象要求高, 要求整幅图象灰度分布均匀。因此我们把均衡增强后的图象作为它的输入图象。
动态门限法是根据不同区域取不同门限值,一般采用平均域值法。它对输入图象照射要求不高。因此我们把方向性滤波后图象作为输入图象。
指纹图像的细化是找出指纹纹线的轴心线来代替纹线的过程。目前采用的细化方法就是迭代一一轮廓剥离法。每次垒图象扫描迭代一次[8],就剥掉边界象素中不影响连通性的象素,直至纹线宽度为1个象素为止。这样一来,如果被细化的纹线宽度越厚,迭代次数就越多,细化时间就越长,这是我们不希望的。
指纹形态特征包括中心(上、下)和三角点(左、右)等,指纹的细节特征点主要包括纹线的起点、终点、结合点和分叉点。将这些点进行自动选择从而完成指纹形态和细节特征提取的工作[14]。
指纹比对是将可以根据指纹的纹形进行粗匹配,进而利用指纹形态和细节特征进行精确匹配,给出两枚指纹的相似性得分。根据应用的不同,对指纹的相似性得分进行排序或给出是否为同一指纹的判决结果。
1.5 指纹图像预处理过程及一般算法
在指纹图象处理的流程中,预处理是第一个处理环节.它对原始灰度图像进行平滑、锐化、增强、二值化等处理,从而使细化、特征抽取等操作能够有效进行。
在常见的图象处理技术中,通常按处理目的把预处理过程分为平滑、增强、二值化等步骤。每一步骤都有一些常用算法,如用于平滑的均值滤波法、中值滤波法、迭代加权法等,用于增强的规格化法、自适应算法、拉普拉斯法、Wdlis滤波、Lee滤波等[5]。
经过很长时间的深入研究和反复实践,发现这些常用的算法应用在指纹图象处理中有下列的问题:
(1)这些算法对于指纹图象处理的效果并不理想,尽管从视觉上有一定改善,但对于后续的细化和特征抽取处理效果来看,不能有效地提高特征的准确率。
(2)不能较好地处理指纹的背景部分,严重影响特征抽取和识别。
(3)不能根据指纹图象的质量差别进行特殊处理,通常获得的指纹图象,会有部分区域质量较差,无法抽取特征,在这些算法中,无法找到一个判别标准[5]。
对此,则需要我们对算法原理的进一步了解及改进。
方向图算法正是基于以上特点在80年代初期,就已经开始有把方向图引入到指纹图的一些成功的尝试。这时候所使用的方向图是从二值图中直接提取,得到的处理效果并不完全令人满意。
从1987年开始,B M.Mehtre等人成功地得到了在灰度图上直接获取方向图的有效算法,并陆续提出了一系列的预处理方法来处理指纹灰度图[15]。使用这些算法使指纹图象的处理效果达到了一个新的水平,从而使基于方向图的算法成为指纹图象处理方法研究中的一个热点 在以后的研究中,出现了很多改进和发展,如Kallen Karu等1996 年提出的把方向图用于纹型分类。Linghong等1998年提出的基于方向图的纹线增强等都取得了较好的效果[24]。这使得方向图成为指纹图象处理技术的关键技术之一。
目前的基于方向图的算法中,从灰度图中获取方向图的原理都大体相同,其基本原理是:从图象的灰度矩阵C(I,J)中计算在各个方向上的某个统计量如灰度差或灰度平均等,根据这些统计量在各个方向上的差异,确定在一个小临域内纹线的主方向。针对每象素得到的方向则形成点方向图[23]。为了保持点方向的有效性使用方便,对点方向在一小块内聚类则得到块方向图。
1.6特征拾取、验证和辨识
一个高质量的图像被拾取后,需要许多步骤将它的特征转换到一个复合的模板中,这个过程被称为特征拾取过程,它是手指扫描技术的核心。当一个高质量的图像被拾取后,它必须被转换成一个有用的格式。如果图像是灰度图像,相对较浅的部分会被删除,而相对较深的部分被变成了黑色。脊的像素有5~8个被缩细到一个像素,这样就能精确定位脊断点和分岔了。微小细节的图像便来自于这个经过处理的图像[18]。在这一点上,即便是十分精细的图像也存在着变形细节和错误细节,这些变形和错误细节都要被滤除。
除细节的定位和夹角方法的应用以外,也可通过细节的类型和质量来划分细节。这种方法的好处在于检索的速度有了较大的提高,一个显著的、特定的细节,它的惟一性更容易使匹配成功。还有一些生产商采用的方法是模式匹配方法,即通过推断一组特定脊的数据来处理指纹图像。
就应用方法而言,指纹识别技术可分为验证和辨识[20]。
验证就是通过把一个现场采集到的指纹与一个已经登记的指纹进行一对一的比对来确定身份的过程。指纹以一定的压缩格式存储,并与其姓名或其标识(ID,PIN)联系起来。随后在对比现场,先验证其标识,然后利用系统的指纹与现场采集的指纹比对来证明其标识是合法的。验证其实回答了这样一个问题:"他是他自称的这个人吗?"这是应用系统中使用得较多的方法。
辨识则是把现场采集到的指纹同指纹数据库中的指纹逐一对比,从中找出与现场指纹相匹配的指纹。这也叫"一对多匹配"[16]。辨识其实是回答了这样一个问题:"他是谁?"
指纹是人体独一无二的特征,其复杂度足以提供用于鉴别的特征。随着相关支持技术的逐步成熟,指纹识别技术经过多年的发展已成为目前最方便、可靠、非侵害和价格便宜的生物识别技术解决方案,对于广大市场的应用有着很大的发展潜力。
1.7 指纹识别的主要应用
指纹识别键盘现在的计算机应用中,包括许多非常机密的文件保护,大都使用“用户ID+密码”的方法来进行用户的身份认证和访问控制。但是,如果一旦密码忘记,或被别人窃取,计算机系统以及文件的安全问题就受到了威胁[11]。
随着科技的进步,指纹识别技术已经开始慢慢进入计算机世界中。目前许多公司和研究机构都在指纹识别技术领域取得了很大突破性进展,推出许多指纹识别与传统IT技术完美结合的应用产品,这些产品已经被越来越多的用户所认可。指纹识别技术多用于对安全性要求比较高的商务领域,而在商务移动办公领域颇具建树的富士通、三星及IBM等国际知名品牌都拥有技术与应用较为成熟的指纹识别系统,下面就对指纹识别系统在笔记本电脑中的应用进行简单介绍。
众所周知,在两年前就有部分品牌的笔记本采用指纹识别技术用于用户登录时的身份鉴定第一代光学式指纹读取器,但是,当时推出的指纹系统属于光学识别系统,按照现在的说法,应该属于第一代指纹识别技术。光学指纹识别系统由于光不能穿透皮肤表层(死性皮肤层),所以只能够扫描手指皮肤的表面,或者扫描到死性皮肤层,但不能深入真皮层。
在这种情况下,手指表面的干净程度,直接影响到识别的效果。如果,用户手指上粘了较多的灰尘,可能就会出现识别出错的情况。并且,如果人们按照手指,做一个指纹手模,也可能通过识别系统,对于用户而言,使用起来不是很安全和稳定。
因此出现了第二代电容式传感器,电容传感器技术是采用了交替命令的并排列和传感器电板,交替板的第二代电容式传感器形式是两个电容板,以及指纹的山谷和山脊成为板之间的电介质。两者之间的恒量电介质的传感器检测变化来生成指纹图像。但是由于传感器表面是使用硅材料容易损坏,导致使用寿命降低,还有它是通过指纹的山谷和山脊之间的凹凸来形成指纹图像的,所以对脏手指、湿手指等困难手指识别率低。
发展到今天,出现第三代生物射频指纹识别技术,射频传感器技术是通过传感器本身发射出微量射频信号,穿透手指的表皮层去控测里层的纹路,来获得最佳的指纹图像。因此对干手指,汉手指等困难手指通过可高达99%,防伪指纹能力强,指纹敏感器的识别原理只对人的真皮皮肤有反应,从根本上杜绝了人造指纹的问题,宽温区:适合特别寒冷或特别酷热的地区。因为射频传感器产生高质量的图像,因此射频技术是最可靠,最有力有解决方案。除此之外,高质量图像还允许减小传感器,无需牺牲认证的可靠性,从而降低成本并使得射频传感器思想的应用到可移动和大小不受拘束的任何领域中。
指纹识别技术还可以通过几种方法应用到许多方面。可以想象如果计算机上的所有系统和应用程序都可以使用指纹验证的话,人们使用计算机就会非常方便和安全,用户不再讨厌必要的安全性检查,而IT开发商的售后服务工作也会减轻许多。IBM公司已经开发成功并广泛应用的Global Sign On软件通过定义唯一的口令,或者使用指纹,就可以在公司整个网络上畅行无阻。 把指纹识别技术同IC卡结合起来,是目前最有前景的一个方向之一[12]。该技术把卡的主人的指纹(加密后)存储在IC卡上,并在IC卡的读卡机上加装指纹识别系统,当读卡机阅读卡上的信息时,一并读入持卡者的指纹,通过比对卡上的指纹与持卡者的指纹就可以确认持卡者的是否卡的真正主人,从而进行下一步的交易。在更加严格的场合,还可以进一步同后端主机系统数据库上的指纹作比较。指纹IC卡可以广泛地运用于许多行业中,例如取代现行的ATM卡、制造防伪证件(签证或护照、公费医疗卡、会员卡、借书卡等)。目前ATM提款机加装指纹识别功能在美国已经开始使用。持卡人可以取消密码 (避免老人和孩子记忆密码的困难)或者仍旧保留密码,在操作上按指纹与密码的时间差不多。
近年来,自动发送信息的互联网络,带给人们的方便与利益,正在快速增长之中,但也因此产生了很多的问题,尤其在信息安全方面。无论是团体或者个人的信息,都害怕在四通八达的网络上传送而发生有损权益的事情。由于指纹特征数据可以通过电子邮件或其他传输方法在计算机网络上进行传输和验证,通过指纹识别技术,限定只有指定的人才能访问相关信息,可以极大地提高网上信息的安全性,这样,包括网上银行、网上贸易、电子商务的一系列网络商业行为,就有了安全性保障。在SFNB(Security First Network Bank安全第一网络银行)[22],就是通过互联网络来进行资金划算的,他们目前正在实施以指纹识别技术为基础的保障安全性的项目,以增强交易的安全性。
在医院里,指纹识别技术可以验证病人身份,例如输血管理。指纹识别技术也有助于证实寻求公共救援、医疗及其他政府福利或者保险金的人的身份确认。在这些应用中,指纹识别系统将会取代或者补充许多大量使用照片和ID的系统。 总之,随着许多指纹识别产品已经开发和生产,指纹识别技术的应用已经开始进入民用市场,并且发展迅猛,相信这一技术的普及应用已经指日可待。
如果在开始将D的值进行改变,将其变小为5时,可以得到更多的特征值,因为D的改变,将导致特征值点的取值改变,其得到的图像如下图3.10所示:
图3.10与图3.8相比,图3.10中绿色的交叉点跟红色的起始点与终结点都多了一些,而这些多是伪特征点,如3.11所示:
MATLAB实验主程序:
clear all,close all,clc
%% Load image
% The general shape of the fingerprint is generally used to pre-process the
% images, and reduce the search in large databases. This uses the general
% directions of the lines of the fingerprint, and the presence of the core
% and the delta. Several categories have been defined in the Henry system:
% whorl, right loop, left loop, arch, and tented arch. Ö¸ÎÆ·ÖÀàÓÐÖúÓÚ¼õÉÙËÑË÷ËÙ¶È
%
% Most algorithms are using minutiae, the specific points like ridges
% ending, bifurcation... Only the position£¨Î»Öã© and direction£¨·½Ïò£© of these features
% are stored in the signature for further comparison.
I=imread('Empreinte.bmp');
imshow(I)
set(gcf,'position',[1 1 600 600]);
%% EnhancementÖ¸ÎÆÔöÇ¿
% A critical step in automatic fingerprint matching is to automatically and
% reliably extract minutiae £¨Ï¸½ÚÌáÈ¡£©from the input fingerprint images. However, the
% performance£¨ÐÔÄÜ£© of a minutiae extraction algorithm relies heavily on the
% quality £¨ÓëÖ¸ÎÆÖÊÁ¿Óйأ©of the input fingerprint images. In order to ensure that the
% performance of an automatic fingerprint identification/verification system
% would be robust with respect to the quality of the fingerprint images, it
% should be essential to incorporate a fingerprint enhancement algorithm in the
% minutiae extraction module£¨ÐèÒªÔÚÖ¸ÎÆϸ½ÚÌáÈ¡Ä£¿é¼ÓÈëÒ»¸öÔöÇ¿Ëã·¨£©.
%
% In our case, the quality of the image is really good, and we wwon't need
% to enhance our image£¨´Ë´¦Ö¸ÎÆͼÏñ½ÏºÃ£¬¹ÊûÓÐÌí¼ÓÔöÇ¿Ëã·¨£©.
%% Binarize(¶þÖµ»¯)
% We binarize the image. After the operation, ridges in the fingerprint are
% highlighted with black color while furrow are white.¶þÖµ»¯ºó¼¹ÎªºÚÉ«,ÖåñÞΪ°×É«
J=I(:,:,1)>160;
imshow(J)
set(gcf,'position',[1 1 600 600]);
%% Thining(ϸ»¯)
% Ridge thining is to eliminate the redundant pixels of ridges till the
% ridges are just one pixel wide.
K=bwmorph(~J,'thin','inf');
imshow(~K)
set(gcf,'position',[1 1 600 600]);
%% Minutiae(ϸ½ÚÌáÈ¡Ä£°æ)
% We filter the thinned ridge map by the filter "minutie". "minutie"
% compute the number of one-value of each 3x3 window:
% * if the central is 1 and has only 1 one-value neighbor, then the central
% pixel is a termination(Åж϶˵ãµÄ·½·¨).
% * if the central is 1 and has 3 one-value neighbor, then the central
% pixel is a bifurcation(ÅжϷֲæµã·½·¨).
% * if the central is 1 and has 2 one-value neighbor, then the central
% pixel is a usual pixel.
fun=@minutie;
L = nlfilter(K,[3 3],fun);
%% Termination
LTerm=(L==1);%ÖÐÐĵãÅÔ±ßÓÐÒ»¸öµã
imshow(LTerm)
LTermLab=bwlabel(LTerm);
propTerm=regionprops(LTermLab,'Centroid');
CentroidTerm=round(cat(1,propTerm(:).Centroid));
imshow(~K)
set(gcf,'position',[1 1 600 600]);
hold on
plot(CentroidTerm(:,1),CentroidTerm(:,2),'ro')
%% Bifurcation
LBif=(L==3);
LBifLab=bwlabel(LBif);
propBif=regionprops(LBifLab,'Centroid','Image');%Measure properties of image regions
CentroidBif=round(cat(1,propBif(:).Centroid));%Round to nearest integer
plot(CentroidBif(:,1),CentroidBif(:,2),'go')
%% Remarks
% We have a lot of spurious minutae.
% We are going to process them.
% process 1: if the distance between a termination and a biffurcation is
% smaller than D, we remove this minutiae
% process 2: if the distance between two biffurcations is
% smaller than D, we remove this minutia
% process 3: if the distance between two terminations is
% smaller than D, we remove this minutia
D=6;
%% Process 1
Distance=DistEuclidian(CentroidBif,CentroidTerm);
SpuriousMinutae=Distance<D;
[i,j]=find(SpuriousMinutae);
CentroidBif(i,:)=[];
CentroidTerm(j,:)=[];
%% Process 2
Distance=DistEuclidian(CentroidBif);
SpuriousMinutae=Distance<D;
[i,j]=find(SpuriousMinutae);
CentroidBif(i,:)=[];
%% Process 3
Distance=DistEuclidian(CentroidTerm);
SpuriousMinutae=Distance<D;
[i,j]=find(SpuriousMinutae);
CentroidTerm(i,:)=[];
%%
hold off
imshow(~K)
hold on
plot(CentroidTerm(:,1),CentroidTerm(:,2),'ro')
plot(CentroidBif(:,1),CentroidBif(:,2),'go')
hold off
%% ROI
% We have to determine a ROI. For that, we consider the binary image, and
% we aply an closing on this image and an erosion.
% With the GUI, I allow the use of ROI tools of MATLAB, to define manually
% the ROI.
Kopen=imclose(K,strel('square',7));
KopenClean= imfill(Kopen,'holes');
KopenClean=bwareaopen(KopenClean,5);
imshow(KopenClean)
KopenClean([1 end],:)=0;
KopenClean(:,[1 end])=0;
ROI=imerode(KopenClean,strel('disk',10));
imshow(ROI)
%%
imshow(I)
hold on
imshow(ROI)
alpha(0.5)
hold on
plot(CentroidTerm(:,1),CentroidTerm(:,2),'ro')
plot(CentroidBif(:,1),CentroidBif(:,2),'go')
hold off
%% Suppress extrema minutiae
% Once we defined the ROI, we can suppress minutiae external to this ROI.
[m,n]=size(I(:,:,1));
indTerm=sub2ind([m,n],CentroidTerm(:,1),CentroidTerm(:,2));
Z=zeros(m,n);
Z(indTerm)=1;
ZTerm=Z.*ROI';
[CentroidTermX,CentroidTermY]=find(ZTerm);
indBif=sub2ind([m,n],CentroidBif(:,1),CentroidBif(:,2));
Z=zeros(m,n);
Z(indBif)=1;
ZBif=Z.*ROI';
[CentroidBifX,CentroidBifY]=find(ZBif);
imshow(I)
hold on
plot(CentroidTermX,CentroidTermY,'ro','linewidth',2)
plot(CentroidBifX,CentroidBifY,'go','linewidth',2)
%% Orientation
% Once we determined the differents minutiae, we have to find the
% orientation of each one
Table=[3*pi/4 2*pi/3 pi/2 pi/3 pi/4
5*pi/6 0 0 0 pi/6
pi 0 0 0 0
-5*pi/6 0 0 0 -pi/6
-3*pi/4 -2*pi/3 -pi/2 -pi/3 -pi/4];
%% Termination Orientation
% We have to find the orientation of the termination.
% For finding that, we analyze the position of the pixel on the boundary of
% a 5 x 5 bounding box of the termination. We compare this position to the
% Table variable. The Table variable gives the angle in radian.
for ind=1:length(CentroidTermX)
Klocal=K(CentroidTermY(ind)-2:CentroidTermY(ind)+2,CentroidTermX(ind)-2:CentroidTermX(ind)+2);
Klocal(2:end-1,2:end-1)=0;
[i,j]=find(Klocal);
OrientationTerm(ind,1)=Table(i,j);
end
dxTerm=sin(OrientationTerm)*5;
dyTerm=cos(OrientationTerm)*5;
figure
imshow(K)
set(gcf,'position',[1 1 600 600]);
hold on
plot(CentroidTermX,CentroidTermY,'ro','linewidth',2)
plot([CentroidTermX CentroidTermX+dyTerm]',...
[CentroidTermY CentroidTermY-dxTerm]','r','linewidth',2)
%% Bifurcation Orientation
% For each bifurcation, we have three lines. So we operate the same
% process than in termination case three times.
for ind=1:length(CentroidBifX)
Klocal=K(CentroidBifY(ind)-2:CentroidBifY(ind)+2,CentroidBifX(ind)-2:CentroidBifX(ind)+2);
Klocal(2:end-1,2:end-1)=0;
[i,j]=find(Klocal);
if length(i)~=3
CentroidBifY(ind)=NaN;
CentroidBifX(ind)=NaN;
OrientationBif(ind)=NaN;
else
for k=1:3
OrientationBif(ind,k)=Table(i(k),j(k));
dxBif(ind,k)=sin(OrientationBif(ind,k))*5;
dyBif(ind,k)=cos(OrientationBif(ind,k))*5;
end
end
end
plot(CentroidBifX,CentroidBifY,'go','linewidth',2)
OrientationLinesX=[CentroidBifX CentroidBifX+dyBif(:,1);CentroidBifX CentroidBifX+dyBif(:,2);CentroidBifX CentroidBifX+dyBif(:,3)]';
OrientationLinesY=[CentroidBifY CentroidBifY-dxBif(:,1);CentroidBifY CentroidBifY-dxBif(:,2);CentroidBifY CentroidBifY-dxBif(:,3)]';
plot(OrientationLinesX,OrientationLinesY,'g','linewidth',2)
附录2
变量D的定义程序:
function D=DistEuclidian(dataset1,dataset2)
h = waitbar(0,'Distance Computation');
switch nargin
case 1
[m1,n1]=size(dataset1);
m2=m1;
D=zeros(m1,m2);
for i=1:m1
waitbar(i/m1)
for j=1:m2
if i==j
D(i,j)=NaN;
else
D(i,j)=sqrt((dataset1(i,1)-dataset1(j,1))^2+(dataset1(i,2)-dataset1(j,2))^2);
end
end
end
case 2
[m1,n1]=size(dataset1);
[m2,n2]=size(dataset2);
D=zeros(m1,m2);
for i=1:m1
waitbar(i/m1)
for j=1:m2
D(i,j)=sqrt((dataset1(i,1)-dataset2(j,1))^2+(dataset1(i,2)-dataset2(j,2))^2);
end
end
otherwise
error('only one or two input arguments')
end
close(h)
附录3
指纹图像二值化,细化程序:
I=imread('Empreinte.bmp');
subplot(421);
imshow(I);
set(gcf,'position',[1 1 600 600]);
J=I(:,:,1)>160;
subplot(322);imshow(J)
set(gcf,'position',[1 1 600 600])
K=bwmorph(~J,'thin','inf');
subplot(323);imshow(~K)
set(gcf,'position',[1 1 600 600]);
fun=@minutie;
L = nlfilter(K,[3 3],fun);
%LTerm=(L==1);
%subplot(324);
%imshow(LTerm);
LTermLab=bwlabel(J);
subplot(324);
imshow(LTermLab)
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- 多路径识别算法
随着各省市高速公路的不断建设,基本上建成了大小规模不等的联网收费系统,在联网收费系统建设中,都面临了一个共同的问题——车辆行驶路径的识别。路径识别不仅仅涉及对每一通行车辆如何计算通行费,同时还要考虑将收入的通行费拆分…...
2024/4/25 23:37:21 - 常见的反爬虫方法
常见的反爬虫 爬虫一般分为 数据采集,处理,储存三个部分。 一般网站从三个方面反爬虫:用户请求的Headers,用户行为,网站目录和数据加载方式。前两种比较容易遇到,大多数网站都从这些角度来反爬虫。第三种…...
2024/4/24 4:27:04 - Silicon labs BLE 开发介绍
Silicon labs BLE 开发人员指南 介绍 该文档涵盖了各个方面的发展,并且是对使用C开发的所有运行Bluetooth堆栈的Wireless Gecko产品的所有人的重要参考。 该文档涵盖以下主题: “ 应用程序开发流程”部分讨论了应用程序开发流程和项目结构。 部分配置…...
2024/5/10 6:21:30 - JAVA实现第n个素数的查找
素数就是除了自己和1之外没有其他因数的数 判断条件可以是: 1.因数只有1和本身n 2.(1,n/2]中没有可以整除n的整数 3.(1,sqrt(n)]中没有可以整除n的整数 首先写一下输出1-n中的素数输出 方法一 import java.util.Scanner;public class 素数 {public static vo…...
2024/4/29 4:50:49 - Solidia Technologies宣布有可能将混凝土转变为地球碳汇
首席执行官Tom Schuler在Countdown全球启动仪式上发表TED演讲,分享预拌混凝土的技术应用 新泽西州皮斯卡特维--(美国商业资讯)--Solidia Technologies首席执行官Tom Schuler在TED和Future Stewards全球Countdown启动仪式上发表TED演讲,其间分享了将Solid…...
2024/4/27 15:19:28 - DREP双周报9.16-10.15 | DREP公链开发持续优化,区块浏览器提升分析和统计功能
亲爱的DREP社区成员: 9月下半月和10月上半月DREP更加关注DREP技术产品进展。 技术产品方面,DREP公链正在进行出块节点弹性增减功能的设计与开发,增加节点最高限制MaxPeers,节点总量可在2/3MaxPeers ~ MaxPeers 之间增减…...
2024/4/28 22:00:14 - CDH技术向视频:PaaS、flink、kafka、Workload XM、Cloudera Machine Learning
CDP私有云上面的PaaS服务,也即是容器化的数据体验服务,一共有五类PaaS服务:CDW、CDE、CML、CDF、COD。本视频主要展示CDW和CML两类服务。 CDW封装了Hive LLAP和Impala服务,这些服务运行在K8S之上,让你可以快速部署计算…...
2024/5/6 18:25:05 - 一周的小项目总结
一,普通用户(User) 1)注册: 注册的时候由于注册的用户分为普通用户和管理员用户,所以关联到另一张角色表,并且是用户角色权限表是通过用户表和角色表的主键构成,不能直接在用户表里…...
2024/4/19 1:04:40 - leetcode-621. 任务调度器
题目 给定一个用字符数组表示的 CPU 需要执行的任务列表。其中包含使用大写的 A - Z 字母表示的26 种不同种类的任务。任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间内执行完。CPU 在任何一个单位时间内都可以执行一个任务,或者在待命状态…...
2024/4/17 20:21:01 - innodb行级锁
1.SELECT … FROM 是一个快照读,通过读取数据库的一个快照,不会加任何锁,除非将隔离级别设置成了 SERIALIZABLE 。 2.SELECT … FROM … LOCK IN SHARE MODE 在所有索引扫描范围的索引记录上加上共享的next key锁;如果是唯一索引,…...
2024/4/17 19:35:40 - Loadrunner 录制手机App脚本多种方法介绍
之前写过使用Loadrunner录制APP脚本的基本流程_Loadrunner_APP测试_性能测试_脚本录制_基本操作流程,但是只能用于请求单一服务器端口适用 这次主要是写的多server服务器时,如何录制脚本(APP、浏览器脚本录制均适用) 录制多serve…...
2024/4/6 8:28:34 - 如何办理gb2626,民用口罩en149标准
防护用品质检报告一般有国标欧标美标测试,要带CNASCMA章。如手套GB10213,GB7543;防护服GB19082,EN13795,EN14126,AAMI PB70;口罩GB19083,YY0469,YY/T0969,GB2…...
2024/4/6 6:57:30 - vue中利用a的href属性配合dom的id实现锚点定位
vue的项目中,有一些地方需要使用锚点定位。 html中传统锚点定位方法就是利用a标签的href属性值与dom元素的id值实现的,例如: <a href"#tiaozhuan1">早年经历</a><h3 id"tiaozhuan1">早年经历</h3&…...
2024/4/6 6:57:29 - gcc: internal compiler error: Killed (program cc1)
编译报错 gcc: internal compiler error: Killed (program cc1) Please submit a full bug report, with preprocessed source if appropriate. See <file:///usr/share/doc/gcc-5/README.Bugs> for instructions. dmesg 可以看到系统有提示 out of memory free -m 可以…...
2024/4/13 9:21:19 - Python的应用范围
Python的应用范围 尽管python是适合初学者学习的语言,许多青少年儿童培训机构也以python作为程序入门语言。然而它却是一个功能强大的程序语言,以下是它的部分可应用范围: (1) 设计动画游戏; (2) 支持图形接口 ( Graphical Use…...
2024/4/6 6:57:27 - 基于注解的aspectJ开发步骤|学习SSM第四天
基于注解的aspectJ开发步骤 今天是学习SSM框架的第四天🤷♀️ 今天咱们就单纯做一个实验,如果有不理解的,欢迎大家在评论区留言🤞 1 准备切面和通知 package aspectj_xml_annotation; import org.aspectj.lang.JoinPoint; im…...
2024/4/23 4:15:40 - Java进阶笔记(四):SpringMVC相关
springMVC是什么:spring提供的用于简化web开发的框架。 -------------------------------- view:视图(html) Controller:只负责接收请求、转发请求 service:处理业务逻辑 Dao:操作数据库 经典三层(代码架…...
2024/4/6 8:28:32 - 信息搜集-子域名挖掘
作者:小刚 一位苦于信息安全的萌新小白帽,记得关注给个赞,谢谢 本实验仅用于信息防御教学,切勿用于其它用途 子域名挖掘域名收集原理网站和工具1.在线子域名查询https://phpinfo.me/domain/2.一会儿~ https://dns.bufferover.run/…...
2024/4/26 7:47:31 - 爬虫IP被封的处理方法
在数据爬虫的工作中,我们不可避免的会遭遇反爬封禁,所以会有爬虫的攻防,在攻和守之间两股力量不断的抗衡。 接下来就讲讲在数据抓取或爬虫时ip被限制的几种解决方案问题: 解决方案一: 建议一定要使用代理IPÿ…...
2024/4/6 8:28:31 - 让人无法拒绝的内容种草营销
以前传统的营销方式是先宣传品牌,打造品牌的知名度,然后在宣传产品,推广产品,利用品牌的知名度和影响力吸引用户购买,这导致一些用心打磨产品的小品牌被埋没,即使产品再好,也无人问津。但随着互…...
2024/5/1 6:48:25
最新文章
- Coredns搭建DNS服务
CoreDNS 是一个灵活、可扩展的 DNS 服务器,常用于 Kubernetes 环境中,但也可以在其他场合单独部署。以下是在 Ubuntu 系统上部署 CoreDNS 的基本步骤: 步骤 1: 安装 CoreDNS Ubuntu 官方仓库可能不包含最新版本的 CoreDNS,所以我…...
2024/5/10 6:54:48 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/5/9 21:23:04 - 计算机网络----第七天
交换机与路由器 路由器的作用: 作用:寻IP地址 路由转发 隔离广播域 交换和维护路由信息 路由器的特点: 特点:位于网络层 转发流量 实现从源地址到目的地址转发 支持丰富的接口类型 支持多种路由协议 支持数据链路层协议 交换…...
2024/5/5 19:26:40 - 开启 Keep-Alive 可能会导致http 请求偶发失败
大家好,我是蓝胖子,说起提高http的传输效率,很多人会开启http的Keep-Alive选项,这会http请求能够复用tcp连接,节省了握手的开销。但开启Keep-Alive真的没有问题吗?我们来细细分析下。 最大空闲时间造成请求…...
2024/5/10 0:24:28 - ssm框架中各层级介绍
1、Spring(业务逻辑层): Spring框架提供了依赖注入(DI)和面向切面编程(AOP)等功能,可以帮助管理Java应用程序中的对象依赖关系和提供横切关注点的支持。 在SSM框架中,S…...
2024/5/10 0:21:53 - 416. 分割等和子集问题(动态规划)
题目 题解 class Solution:def canPartition(self, nums: List[int]) -> bool:# badcaseif not nums:return True# 不能被2整除if sum(nums) % 2 ! 0:return False# 状态定义:dp[i][j]表示当背包容量为j,用前i个物品是否正好可以将背包填满ÿ…...
2024/5/10 1:36:26 - 【Java】ExcelWriter自适应宽度工具类(支持中文)
工具类 import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellType; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet;/*** Excel工具类** author xiaoming* date 2023/11/17 10:40*/ public class ExcelUti…...
2024/5/9 7:40:42 - Spring cloud负载均衡@LoadBalanced LoadBalancerClient
LoadBalance vs Ribbon 由于Spring cloud2020之后移除了Ribbon,直接使用Spring Cloud LoadBalancer作为客户端负载均衡组件,我们讨论Spring负载均衡以Spring Cloud2020之后版本为主,学习Spring Cloud LoadBalance,暂不讨论Ribbon…...
2024/5/9 2:44:26 - TSINGSEE青犀AI智能分析+视频监控工业园区周界安全防范方案
一、背景需求分析 在工业产业园、化工园或生产制造园区中,周界防范意义重大,对园区的安全起到重要的作用。常规的安防方式是采用人员巡查,人力投入成本大而且效率低。周界一旦被破坏或入侵,会影响园区人员和资产安全,…...
2024/5/10 2:07:45 - VB.net WebBrowser网页元素抓取分析方法
在用WebBrowser编程实现网页操作自动化时,常要分析网页Html,例如网页在加载数据时,常会显示“系统处理中,请稍候..”,我们需要在数据加载完成后才能继续下一步操作,如何抓取这个信息的网页html元素变化&…...
2024/5/9 3:15:57 - 【Objective-C】Objective-C汇总
方法定义 参考:https://www.yiibai.com/objective_c/objective_c_functions.html Objective-C编程语言中方法定义的一般形式如下 - (return_type) method_name:( argumentType1 )argumentName1 joiningArgument2:( argumentType2 )argumentName2 ... joiningArgu…...
2024/5/9 5:40:03 - 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】
👨💻博客主页:花无缺 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】🌏题目描述🌏输入格…...
2024/5/9 7:40:40 - 【ES6.0】- 扩展运算符(...)
【ES6.0】- 扩展运算符... 文章目录 【ES6.0】- 扩展运算符...一、概述二、拷贝数组对象三、合并操作四、参数传递五、数组去重六、字符串转字符数组七、NodeList转数组八、解构变量九、打印日志十、总结 一、概述 **扩展运算符(...)**允许一个表达式在期望多个参数࿰…...
2024/5/10 2:07:43 - 摩根看好的前智能硬件头部品牌双11交易数据极度异常!——是模式创新还是饮鸩止渴?
文 | 螳螂观察 作者 | 李燃 双11狂欢已落下帷幕,各大品牌纷纷晒出优异的成绩单,摩根士丹利投资的智能硬件头部品牌凯迪仕也不例外。然而有爆料称,在自媒体平台发布霸榜各大榜单喜讯的凯迪仕智能锁,多个平台数据都表现出极度异常…...
2024/5/10 2:07:43 - Go语言常用命令详解(二)
文章目录 前言常用命令go bug示例参数说明 go doc示例参数说明 go env示例 go fix示例 go fmt示例 go generate示例 总结写在最后 前言 接着上一篇继续介绍Go语言的常用命令 常用命令 以下是一些常用的Go命令,这些命令可以帮助您在Go开发中进行编译、测试、运行和…...
2024/5/9 4:12:16 - 用欧拉路径判断图同构推出reverse合法性:1116T4
http://cplusoj.com/d/senior/p/SS231116D 假设我们要把 a a a 变成 b b b,我们在 a i a_i ai 和 a i 1 a_{i1} ai1 之间连边, b b b 同理,则 a a a 能变成 b b b 的充要条件是两图 A , B A,B A,B 同构。 必要性显然࿰…...
2024/5/9 7:40:35 - 【NGINX--1】基础知识
1、在 Debian/Ubuntu 上安装 NGINX 在 Debian 或 Ubuntu 机器上安装 NGINX 开源版。 更新已配置源的软件包信息,并安装一些有助于配置官方 NGINX 软件包仓库的软件包: apt-get update apt install -y curl gnupg2 ca-certificates lsb-release debian-…...
2024/5/9 19:47:07 - Hive默认分割符、存储格式与数据压缩
目录 1、Hive默认分割符2、Hive存储格式3、Hive数据压缩 1、Hive默认分割符 Hive创建表时指定的行受限(ROW FORMAT)配置标准HQL为: ... ROW FORMAT DELIMITED FIELDS TERMINATED BY \u0001 COLLECTION ITEMS TERMINATED BY , MAP KEYS TERMI…...
2024/5/9 7:40:34 - 【论文阅读】MAG:一种用于航天器遥测数据中有效异常检测的新方法
文章目录 摘要1 引言2 问题描述3 拟议框架4 所提出方法的细节A.数据预处理B.变量相关分析C.MAG模型D.异常分数 5 实验A.数据集和性能指标B.实验设置与平台C.结果和比较 6 结论 摘要 异常检测是保证航天器稳定性的关键。在航天器运行过程中,传感器和控制器产生大量周…...
2024/5/10 2:07:41 - --max-old-space-size=8192报错
vue项目运行时,如果经常运行慢,崩溃停止服务,报如下错误 FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory 因为在 Node 中,通过JavaScript使用内存时只能使用部分内存(64位系统&…...
2024/5/9 5:02:59 - 基于深度学习的恶意软件检测
恶意软件是指恶意软件犯罪者用来感染个人计算机或整个组织的网络的软件。 它利用目标系统漏洞,例如可以被劫持的合法软件(例如浏览器或 Web 应用程序插件)中的错误。 恶意软件渗透可能会造成灾难性的后果,包括数据被盗、勒索或网…...
2024/5/9 4:31:45 - JS原型对象prototype
让我简单的为大家介绍一下原型对象prototype吧! 使用原型实现方法共享 1.构造函数通过原型分配的函数是所有对象所 共享的。 2.JavaScript 规定,每一个构造函数都有一个 prototype 属性,指向另一个对象,所以我们也称为原型对象…...
2024/5/9 16:54:42 - C++中只能有一个实例的单例类
C中只能有一个实例的单例类 前面讨论的 President 类很不错,但存在一个缺陷:无法禁止通过实例化多个对象来创建多名总统: President One, Two, Three; 由于复制构造函数是私有的,其中每个对象都是不可复制的,但您的目…...
2024/5/10 1:31:37 - python django 小程序图书借阅源码
开发工具: PyCharm,mysql5.7,微信开发者工具 技术说明: python django html 小程序 功能介绍: 用户端: 登录注册(含授权登录) 首页显示搜索图书,轮播图࿰…...
2024/5/9 6:36:49 - 电子学会C/C++编程等级考试2022年03月(一级)真题解析
C/C++等级考试(1~8级)全部真题・点这里 第1题:双精度浮点数的输入输出 输入一个双精度浮点数,保留8位小数,输出这个浮点数。 时间限制:1000 内存限制:65536输入 只有一行,一个双精度浮点数。输出 一行,保留8位小数的浮点数。样例输入 3.1415926535798932样例输出 3.1…...
2024/5/9 4:33:29 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...
2022/11/19 21:17:18 - 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。
%读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...
2022/11/19 21:17:16 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...
win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...
2022/11/19 21:17:15 - 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...
2022/11/19 21:17:14 - win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...
置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...
2022/11/19 21:17:13 - 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...
Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...
2022/11/19 21:17:12 - 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...
有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...
2022/11/19 21:17:11 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...
今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...
2022/11/19 21:17:10 - 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...
2022/11/19 21:17:09 - 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...
2022/11/19 21:17:08 - 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...
2022/11/19 21:17:05 - 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...
钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...
2022/11/19 21:17:05 - 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...
2022/11/19 21:17:04 - 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...
2022/11/19 21:17:03 - 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...
许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...
2022/11/19 21:17:02 - 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...
2022/11/19 21:17:01 - 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...
不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...
2022/11/19 21:17:00 - 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...
2022/11/19 21:16:59 - 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢࿰…...
2022/11/19 21:16:58 - 如何在iPhone上关闭“请勿打扰”
Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...
2022/11/19 21:16:57