欢迎访问我的GitHub

这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos

《Java版人脸跟踪三部曲》全文链接

  1. 《极速体验》
  2. 《开发设计》
  3. 《编码实战》

本篇概览

  • 作为《Java版人脸跟踪三部曲》系列的终篇,本文会与大家一起写出完整的人脸跟踪应用代码
  • 前文《开发设计》中,已经对人脸跟踪的核心技术、应用主流程、异常处理等方方面面做了详细设计,建议您简单回顾一下
  • 接下来,自顶向下,先整体设计好主框架和关键类

程序主框架和关键类

  • 听欣宸唠叨了两篇文章,终于要看具体代码了,整体上看,最关键的三个类如下图:
    在这里插入图片描述
  • 可见把功能、流程、知识点梳理清楚后,代码其实并不多,而且各司其职,分工明确,接下来开始编码,ObejctTracker负责实现跟踪功能,就从它开始

ObejctTracker.java:跟踪能力的提供者

  • 从前面的图中可知,与跟踪有关的服务都是ObejctTracker类提供的,此类涉及知识点略多,在编写代码前,先做一下简单的设计
  • 从功能看,ObejctTracker会对外提供如下两个方法:
方法名作用入参返回内部实现
createTrackedObject主程序如果从视频帧中首次次检测到人脸,就会调用createTrackedObject方法,表示开始跟踪了mRgba:出现人脸的图片
region:人脸在图片中的位置
提取人脸的hue,生成直方图
objectTracking开始跟踪后,主程序从摄像头取到的每一帧图片后,都会调用此方法,用于得到人脸在这一帧中的位置mRgba:图片人脸在输入图片中位置用人脸hue直方图对输入图片进行计算,得到反向投影图,在反向投影图上做CamShift计算得到人脸位置
  • 除了上述两个对外方法,ObejctTracker内部还要准备如下两个辅助方法:
方法名作用入参返回内部实现
rgba2Hue将RGB颜色空间的图片转为HSV,再提取出hue通道,生成直方图rgba:人脸图片List<Mat>:直方图
lostTrace对比objectTracking方法返回的结果与上次出现的位置,确定人有没有跟丢lastRect:上次出现的位置
currentRect:objectTracking方法检测到的当前帧上的位置
true表示跟丢了,false表示没有跟丢对比两个矩形的差距是否超过一个门限,正常情况下连续两帧中的人脸差别不会太大,所以一旦差别大了就表示跟丢了,currentRect的位置上不是人脸
  • 还有几个成员变量也很重要:
    // 每一帧图像的反向投影图都用这个成员变量来保存private Mat prob;// 保存最近一次确认的头像的位置,每当新的一帧到来时,都从这个位置开始追踪(也就是反向投影图做CamShift计算的起始位置)private Rect trackRect;// 直方图,在跟丢之前,每一帧图像都要用到这个直方图来生成反向投影private Mat hist;
  • 设计完成,现在可以给出完整的ObejctTracker.java源码了:
package com.bolingcavalry.grabpush.extend;import lombok.extern.slf4j.Slf4j;
import org.opencv.core.*;
import org.opencv.imgproc.Imgproc;
import org.opencv.video.Video;
import java.util.Collections;
import java.util.List;
import java.util.Vector;/*** @author willzhao* @version 1.0* @description TODO* @date 2022/1/8 21:21*/
@Slf4j
public class ObjectTracker {/*** 上一个矩形和当前矩形的差距达到多少的时候,才算跟丢,您可以自行调整*/private static final double LOST_GATE = 0.8d;// [0.0, 256.0]表示直方图能表示像素值从0.0到256的像素private static final MatOfFloat RANGES = new MatOfFloat(0f, 256f);private Mat mask;// 保存用来追踪的每一帧的反向投影图private Mat prob;// 保存最近一次确认的头像的位置,每当新的一帧到来时,都从这个位置开始追踪(也就是反向投影图做CamShift计算的起始位置)private Rect trackRect;// 直方图private Mat hist;public ObjectTracker(Mat rgba) {hist = new Mat();trackRect = new Rect();mask = new Mat(rgba.size(), CvType.CV_8UC1);prob = new Mat(rgba.size(), CvType.CV_8UC1);}/*** 将摄像头传来的图片提取出hue通道,放入hueList中* 将摄像头传来的RGB颜色空间的图片转为HSV颜色空间,* 然后检查HSV三个通道的值是否在指定范围内,mask中记录了检查结果* 再将hsv中的hue提取出来* @param rgba*/private List<Mat> rgba2Hue(Mat rgba) {// 实例化Mat,显然,hsv是三通道,hue是hsv三通道其中的一个,所以hue是一通道Mat hsv = new Mat(rgba.size(), CvType.CV_8UC3);Mat hue = new Mat(rgba.size(), CvType.CV_8UC1);// 1. 先转换// 转换颜色空间,RGB到HSVImgproc.cvtColor(rgba, hsv, Imgproc.COLOR_RGB2HSV);int vMin = 65, vMax = 256, sMin = 55;//inRange函数的功能是检查输入数组每个元素大小是否在2个给定数值之间,可以有多通道,mask保存0通道的最小值,也就是h分量//这里利用了hsv的3个通道,比较h,0~180,s,smin~256,v,min(vmin,vmax),max(vmin,vmax)。如果3个通道都在对应的范围内,//则mask对应的那个点的值全为1(0xff),否则为0(0x00).Core.inRange(hsv,new Scalar(0, sMin, Math.min(vMin, vMax)),new Scalar(180, 256, Math.max(vMin, vMax)),mask);// 2. 再提取// 把hsv的数据放入hsvList中,用于稍后提取出其中的hueList<Mat> hsvList = new Vector<>();hsvList.add(hsv);// 准备好hueList,用于接收通道// hue初始化为与hsv大小深度一样的矩阵,色调的度量是用角度表示的,红绿蓝之间相差120度,反色相差180度hue.create(hsv.size(), hsv.depth());List<Mat> hueList = new Vector<>();hueList.add(hue);// 描述如何提取:从目标的0位置提取到目的地的0位置MatOfInt from_to = new MatOfInt(0, 0);// 提取操作:将hsv第一个通道(也就是色调)的数复制到hue中,0索引数组Core.mixChannels(hsvList, hueList, from_to);return hueList;}/*** 当外部调用方确定了人脸在图片中的位置后,就可以调用createTrackedObject开始跟踪,* 该方法中会先生成人脸的hue的直方图,用于给后续帧生成反向投影* @param mRgba* @param region*/public void createTrackedObject(Mat mRgba, Rect region) {hist.release();//将摄像头的视频帧转化成hsv,然后再提取出其中的hue通道List<Mat> hueList = rgba2Hue(mRgba);// 人脸区域的maskMat tempMask = mask.submat(region);// histSize表示这个直方图分成多少份(即多少个直方柱),就是 bin的个数MatOfInt histSize = new MatOfInt(25);// 只要头像区域的数据List<Mat> images = Collections.singletonList(hueList.get(0).submat(region));// 计算头像的hue直方图,结果在hist中Imgproc.calcHist(images, new MatOfInt(0), tempMask, hist, histSize, RANGES);// 将hist矩阵进行数组范围归一化,都归一化到0~255Core.normalize(hist, hist, 0, 255, Core.NORM_MINMAX);// 这个trackRect记录了人脸最后一次出现的位置,后面新的帧到来时,就从trackRect位置开始做CamShift计算trackRect = region;}/*** 在开始跟踪后,每当摄像头新的一帧到来时,外部就会调用objectTracking,将新的帧传入,* 此时,会用前面准备好的人脸hue直方图,将新的帧计算出反向投影图,* 再在反向投影图上执行CamShift计算,找到密度最大处,即人脸在新的帧上的位置,* 将这个位置作为返回值,返回* @param mRgba 新的一帧* @return 人脸在新的一帧上的位置*/public Rect objectTracking(Mat mRgba) {// 新的图片,提取hueList<Mat> hueList;try {// 实测此处可能抛出异常,要注意捕获,避免程序退出hueList = rgba2Hue(mRgba);} catch (CvException cvException) {log.error("cvtColor exception", cvException);trackRect = null;return null;}// 用头像直方图在新图片的hue通道数据中计算反向投影。Imgproc.calcBackProject(hueList, new MatOfInt(0), hist, prob, RANGES, 1.0);// 计算两个数组的按位连接(dst = src1 & src2)计算两个数组或数组和标量的每个元素的逐位连接。Core.bitwise_and(prob, mask, prob, new Mat());// 在反向投影上进行CamShift计算,返回值就是密度最大处,即追踪结果RotatedRect rotatedRect = Video.CamShift(prob, trackRect, new TermCriteria(TermCriteria.EPS, 10, 1));// 转为Rect对象Rect camShiftRect = rotatedRect.boundingRect();// 比较追踪前和追踪后的数据,如果出现太大偏差,就认为追踪失败if (lostTrace(trackRect, camShiftRect)) {log.info("lost trace!");trackRect = null;return null;}// 将本次最终到的目标作为下次追踪的对象trackRect = camShiftRect;return camShiftRect;}/*** 变化率的绝对值* @param last 变化前* @param current 变化后* @return*/private static double changeRate(int last, int current) {return Math.abs((double)(current-last)/(double) last);}/*** 本次和上一次宽度或者高度的变化率,一旦超过阈值就认为跟踪失败* @param lastRect* @param currentRect* @return*/private static boolean lostTrace(Rect lastRect, Rect currentRect) {// 0不能做除数,如果发现0就认跟丢了if (lastRect.width<1 || lastRect.height<1) {return true;}double widthChangeRate = changeRate(lastRect.width, currentRect.width);if (widthChangeRate>LOST_GATE) {log.info("1. lost trace, old [{}], new [{}], rate [{}]", lastRect.width, currentRect.width, widthChangeRate);return true;}double heightChangeRate = changeRate(lastRect.height, currentRect.height);if (heightChangeRate>LOST_GATE) {log.info("2. lost trace, old [{}], new [{}], rate [{}]", lastRect.height, currentRect.height, heightChangeRate);return true;}return false;}
}
  • 最核心的跟踪服务已经完成,接下来要实现完整业务逻辑,即:CamShiftDetectService.java

CamShiftDetectService.java:业务逻辑的提供者

  • 有了核心能力,接下来要做的就是在业务中使用这个能力,前文已设计好完整的业务逻辑,这里先简单回顾一下:
    在这里插入图片描述
  • 可见主要业务流程可以用两个状态+行为来表示:
  1. 还未开始跟踪:对每一帧做人脸检测,一旦检测到,就进入跟踪状态,并调用ObjectTracker.createTrackedObject生成人脸的hue直方图
  2. 已处于跟踪状态:对每一帧图像,都调用ObjectTracker.objectTracking去检查人脸在图像中的位置,直到到跟丢了为止,一旦跟丢了,就重新进入到还未开始跟踪的状态
  • 现在我们已经清楚了CamShiftDetectService.java要做的具体事情,接下来看看有哪些重要方法:
方法名作用入参返回内部实现
init被主程序调用的初始化方法,在应用启动的时候会调用一次加载人脸检测的模型
convert每当主程序从摄像头拿到新的一帧后,都会调用此方法frame:来自摄像头的最新一帧被处理后的帧,会被主程序展现在预览窗口convert方法内部实现了前面提到的两种状态和行为(还未开始跟踪、已处于跟踪状态)
releaseOutputResource程序结束前,被主程序调用的释放资源的方法释放一些成员变量的资源
  • 再来看看有哪些重要的成员变量,如下所示,isInTracing表示当前是否处于跟踪状态,classifier用于检测人脸:
/*** 每一帧原始图片的对象*/private Mat grabbedImage = null;/*** 分类器*/private CascadeClassifier classifier;/*** 转换器*/private OpenCVFrameConverter.ToMat converter = new OpenCVFrameConverter.ToMat();/*** 模型文件的下载地址*/private String modelFilePath;/*** 存放RGBA图片Mat*/private Mat mRgba;/*** 存放灰度图片的Mat,仅用在人脸检测的时候*/private Mat mGray;/*** 跟踪服务类*/private ObjectTracker objectTracker;/*** 表示当前是否正在跟踪目标*/private boolean isInTracing = false;
  • 现在可以给出CamShiftDetectService.java的完整代码了:
package com.bolingcavalry.grabpush.extend;import com.bolingcavalry.grabpush.Util;
import lombok.extern.slf4j.Slf4j;
import org.bytedeco.javacv.Frame;
import org.bytedeco.javacv.OpenCVFrameConverter;
import org.bytedeco.opencv.opencv_core.Mat;
import org.bytedeco.opencv.opencv_core.Rect;
import org.bytedeco.opencv.opencv_core.RectVector;
import org.bytedeco.opencv.opencv_objdetect.CascadeClassifier;
import java.io.File;
import static org.bytedeco.opencv.global.opencv_imgproc.CV_BGR2GRAY;
import static org.bytedeco.opencv.global.opencv_imgproc.cvtColor;@Slf4j
public class CamShiftDetectService implements DetectService {/*** 每一帧原始图片的对象*/private Mat grabbedImage = null;/*** 分类器*/private CascadeClassifier classifier;/*** 转换器*/private OpenCVFrameConverter.ToMat converter = new OpenCVFrameConverter.ToMat();/*** 模型文件的下载地址*/private String modelFilePath;/*** 存放RGBA图片Mat*/private Mat mRgba;/*** 存放灰度图片的Mat,仅用在人脸检测的时候*/private Mat mGray;/*** 跟踪服务类*/private ObjectTracker objectTracker;/*** 表示当前是否正在跟踪目标*/private boolean isInTracing = false;/*** 构造方法,在此指定模型文件的下载地址* @param modelFilePath*/public CamShiftDetectService(String modelFilePath) {this.modelFilePath = modelFilePath;}/*** 音频采样对象的初始化* @throws Exception*/@Overridepublic void init() throws Exception {log.info("开始加载模型文件");// 模型文件下载后的完整地址String classifierName = new File(modelFilePath).getAbsolutePath();// 根据模型文件实例化分类器classifier = new CascadeClassifier(classifierName);if (classifier == null) {log.error("Error loading classifier file [{}]", classifierName);System.exit(1);}log.info("模型文件加载完毕,初始化完成");}@Overridepublic Frame convert(Frame frame) {// 由帧转为MatgrabbedImage = converter.convert(frame);// 初始化灰度Matif (null==mGray) {mGray = Util.initGrayImageMat(grabbedImage);}// 初始化RGBA的Matif (null==mRgba) {mRgba = Util.initRgbaImageMat(grabbedImage);}// 如果未在追踪状态if (!isInTracing) {// 存放检测结果的容器RectVector objects = new RectVector();// 当前图片转为灰度图片cvtColor(grabbedImage, mGray, CV_BGR2GRAY);// 开始检测classifier.detectMultiScale(mGray, objects);// 检测结果总数long total = objects.size();// 当前实例是只追踪一人,因此一旦检测结果不等于一,就不处理,您可以根据自己业务情况修改此处if (total!=1) {objects.close();return frame;}log.info("start new trace");Rect r = objects.get(0);int x = r.x(), y = r.y(), w = r.width(), h = r.height();// 得到opencv的mat,其格式是RGBAorg.opencv.core.Mat openCVRGBAMat = Util.buildJavacvBGR2OpenCVRGBA(grabbedImage, mRgba);// 在buildJavacvBGR2OpenCVRGBA方法内部,有可能在执行native方法的是否发生异常,要做针对性处理if (null==openCVRGBAMat) {objects.close();return frame;}// 如果第一次追踪,要实例化objectTrackerif (null==objectTracker) {objectTracker = new ObjectTracker(openCVRGBAMat);}// 创建跟踪目标objectTracker.createTrackedObject(openCVRGBAMat, new org.opencv.core.Rect(x, y, w, h));// 根据本次检测结果给原图标注人脸矩形框Util.rectOnImage(grabbedImage, x, y, w, h);// 释放检测结果资源objects.close();// 修改标志,表示当前正在跟踪isInTracing = true;// 将标注过的图片转为帧,返回return converter.convert(grabbedImage);}// 代码走到这里,表示已经在追踪状态了// 得到opencv的mat,其格式是RGBAorg.opencv.core.Mat openCVRGBAMat = Util.buildJavacvBGR2OpenCVRGBA(grabbedImage, mRgba);// 在buildJavacvBGR2OpenCVRGBA方法内部,有可能在执行native方法的是否发生异常,要做针对性处理if (null==openCVRGBAMat) {return frame;}// 基于上一次的检测结果开始跟踪org.opencv.core.Rect rotatedRect = objectTracker.objectTracking(openCVRGBAMat);// 如果rotatedRect为空,表示跟踪失败,此时要修改状态为"未跟踪"if (null==rotatedRect) {isInTracing = false;// 返回原始帧return frame;}// 代码能走到这里,表示跟踪成功,拿到的新的一帧上的目标的位置,此时就在新位置上
//        Util.rectOnImage(grabbedImage, rotatedRect.x, rotatedRect.y, rotatedRect.width, rotatedRect.height);// 矩形框的整体向下放一些(总高度的五分之一),另外跟踪得到的高度过大,画出的矩形框把脖子也框上了,这里改用宽度作为高度Util.rectOnImage(grabbedImage, rotatedRect.x, rotatedRect.y + rotatedRect.height/5, rotatedRect.width, rotatedRect.width);return converter.convert(grabbedImage);}/*** 程序结束前,释放人脸识别的资源*/@Overridepublic void releaseOutputResource() {if (null!=grabbedImage) {grabbedImage.release();}if (null!=mGray) {mGray.release();}if (null!=mRgba) {mRgba.release();}if (null==classifier) {classifier.close();}}
}
  • 至此·,功能已经完成得七七八八,再来写完主程序就可以运行了;

PreviewCameraWithCamShift.java:主程序

  • 《JavaCV的摄像头实战之一:基础》创建的simple-grab-push工程中已经准备好了父类AbstractCameraApplication,所以本篇继续使用该工程,创建子类PreviewCameraWithCamShift实现那些抽象方法即可
  • 编码前先回顾父类的基础结构,如下图,粗体是父类定义的各个方法,红色块都是需要子类来实现抽象方法,所以接下来,咱们以本地窗口预览为目标实现这三个红色方法即可:
    在这里插入图片描述
  • 新建文件PreviewCameraWithCamShift.java,这是AbstractCameraApplication的子类,其代码很简单,接下来按上图顺序依次说明
  • 先定义CanvasFrame类型的成员变量previewCanvas,这是展示视频帧的本地窗口:
protected CanvasFrame previewCanvas
  • 把前面创建的DetectService作为成员变量,后面检测的时候会用到:
    /*** 检测工具接口*/private DetectService detectService;
  • PreviewCameraWithCamShift的构造方法,接受DetectService的实例:
    /*** 不同的检测工具,可以通过构造方法传入* @param detectService*/public PreviewCameraWithCamShift(DetectService detectService) {this.detectService = detectService;}
  • 然后是初始化操作,可见是previewCanvas的实例化和参数设置,还有检测、识别的初始化操作:
    @Overrideprotected void initOutput() throws Exception {previewCanvas = new CanvasFrame("摄像头预览", CanvasFrame.getDefaultGamma() / grabber.getGamma());previewCanvas.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);previewCanvas.setAlwaysOnTop(true);// 检测服务的初始化操作detectService.init();}
  • 接下来是output方法,定义了拿到每一帧视频数据后做什么事情,这里调用了detectService.convert检测人脸并识别性别,然后在本地窗口显示:
    @Overrideprotected void output(Frame frame) {// 原始帧先交给检测服务处理,这个处理包括物体检测,再将检测结果标注在原始图片上,// 然后转换为帧返回Frame detectedFrame = detectService.convert(frame);// 预览窗口上显示的帧是标注了检测结果的帧previewCanvas.showImage(detectedFrame);}
  • 最后是处理视频的循环结束后,程序退出前要做的事情,先关闭本地窗口,再释放检测服务的资源:
    @Overrideprotected void releaseOutputResource() {if (null!= previewCanvas) {previewCanvas.dispose();}// 检测工具也要释放资源detectService.releaseOutputResource();}
  • 由于检测有些耗时,所以两帧之间的间隔时间要低于普通预览:
    @Overrideprotected int getInterval() {return super.getInterval()/8;}
  • 至此,功能已开发完成,再写上main方法,代码如下,请注意人脸检测所需的模型文件的路径来自系统变量:
    public static void main(String[] args) {String modelFilePath = System.getProperty("model.file.path");log.info("模型文件本地路径:{}", modelFilePath);new PreviewCameraWithCamShift(new CamShiftDetectService(modelFilePath)).action(1000);}
  • 至此,《Java版人脸跟踪三部曲》的代码已经全部写完了,可以像《Java版人脸跟踪三部曲之一:极速体验》文中那样运行起来了

运行程序要注意的地方

  1. 下载opencv在windows环境的动态链接库:https://download.csdn.net/download/boling_cavalry/75121158,我这里下载后放在:C:\study\javacv\lib\opencv_java453.dll
  2. 人脸检测的模型文件,在GitHub下载,地址是:https://raw.github.com/opencv/opencv/master/data/haarcascades/haarcascade_frontalface_alt.xml,我这里下载后放在:C:\study\javacv\model\haarcascade_frontalface_alt.xml
  3. 运行程序的时候,不论是打包成jar,还是直接在IDEA中运行,都要添加下面这两个命令参数,才能确保应用加载到dll和模型文件(请按照您自己的存储位置修改下面参数的值):
  • -Djava.library.path=C:\study\javacv\lib
  • -Dmodel.file.path=C:\study\javacv\model\haarcascade_frontalface_alt.xml
  • 程序运行起来后,具体的效果与像《Java版人脸跟踪三部曲之一:极速体验》中一模一样,这里就不再赘述了,您自行验证就好
  • 其实本篇不运行程序,还有一个原因就是要过年了,用来检测人脸的群众演员临时涨价,要两份盒饭,欣宸实在是负担不起…

源码下载

  • 《JavaCV人脸识别三部曲》的完整源码可在GitHub下载到,地址和链接信息如下表所示(https://github.com/zq2599/blog_demos):
名称链接备注
项目主页https://github.com/zq2599/blog_demos该项目在GitHub上的主页
git仓库地址(https)https://github.com/zq2599/blog_demos.git该项目源码的仓库地址,https协议
git仓库地址(ssh)git@github.com:zq2599/blog_demos.git该项目源码的仓库地址,ssh协议
  • 这个git项目中有多个文件夹,本篇的源码在javacv-tutorials文件夹下,如下图红框所示:
    在这里插入图片描述
  • javacv-tutorials里面有多个子工程,《JavaCV的摄像头实战》系列的代码在simple-grab-push工程下:
    在这里插入图片描述
  • 至此,《Java版人脸跟踪三部曲》完美收官,但是《JavaCV的摄像头实战》系列还会继续呈现更多精彩内容,欢迎关注;
  • 马上过年了,欣宸祝各位读者们新年快乐!

你不孤单,欣宸原创一路相伴

  1. Java系列
  2. Spring系列
  3. Docker系列
  4. kubernetes系列
  5. 数据库+中间件系列
  6. DevOps系列
查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 【前端项目问题】Vue 中 v-html 的使用

    Vue 中 v-html 的使用一、 v-html是什么&#xff1f;二、使用方式一、 v-html是什么&#xff1f; v-html 用来更新元素的 innerHTML&#xff0c;但是存在一定的安全性。 注意&#xff1a; 1、内容按普通 HTML 插入 - 不会作为 Vue 模板进行编译。 2、在网站上动态渲染任意 HTM…...

    2024/4/16 16:39:03
  2. Vue中父组件如何向子组件传递数据?

    通过props属性来进行父子组件之间的数据传递。具体的做法呢&#xff0c;首先在子组件中使用props属性来接受父组件传递的数据&#xff0c;然后在父组件调用子组件时使用属性值的方式往下传递数据。...

    2024/5/7 21:46:36
  3. java面试系列(3)—— ThreadLocal

    说一下ThreadLocal 1.ThreadLocal 是java中所提供的线程本地存储机制&#xff0c;可以利用该机制将数据&#xff08;如对象&#xff09;缓存在某个线程内部&#xff0c;该线程可以在任意时刻、任意方法中获取缓存的数据 2.ThreadLocal底层是通过ThreadLocalMap实现的&#xff0…...

    2024/4/19 8:48:05
  4. CSS 3

    盒子模型 网页布局要学习三大核心&#xff0c;盒子模型&#xff0c;浮动和定位。学习好盒子模型能非常好的帮助我们布局页面 1.1看透网页的本质 网页布局过程&#xff1a; 先准备好相关的网页元素&#xff0c;网页元素基本都是盒子BOX利用CSS设置好盒子样式&#xff0c;然后…...

    2024/4/20 12:44:57
  5. Python基础语法(python函数)python函数的各种使用方法

    python函数 函数时执行特定任务和完成特定功能的一段代码&#xff0c;如print、input等函数 函数的作用&#xff1a; 1、复用代码 2、隐藏实现细节 3、提高可维护性 4、提高可读性便于调试函数的创建&#xff1a; def 函数名&#xff08;输入参数&#xff09;:函数体return xxx…...

    2024/4/20 15:17:03
  6. 2 过河卒[NOIP2002 普及组]

    题目描述 棋盘上A点有一个过河卒&#xff0c;需要走到目标B点。卒行走的规则&#xff1a;可以向下、或者向右。同时在棋盘上C点有一个对方的马&#xff0c;该马所在的点和所有跳跃一步可达的点称为对方马的控制点。因此称之为“马拦过河卒”。 棋盘用坐标表示&#xff0c;A点…...

    2024/5/7 17:29:58
  7. 一个Vue组件中包含哪些部分?

    HTML模板&#xff0c;JS代码部分&#xff0c;CSS代码部分。...

    2024/4/5 3:27:29
  8. 暗月渗透实战靶场-项目七(下)

    00x6-踏进内网 上面我们已经拿到了外网机器的adminstrstor的用户权限 对内网进行信息搜集 密码获取 hashdump logonpasswords上面我们已经知道这个目标机是开启了3389端口的、 连接3389 小插曲 如果连接Windows server 2016出现这个报错 解决 连接 成功 任务 清除痕迹、…...

    2024/5/8 6:31:07
  9. [云炬ThinkPython阅读笔记]3.2 数学函数

    ...

    2024/4/13 20:50:19
  10. Python 高等数学应用 求导数的三种方式

    Python 高等数学应用 求导数的三种方式 方式一 使用SymPy的diff 函数, 可以得到函数的导数表达式,给出数学表达式里的数学符号描述符 本例使用了此方法 方式二 使用spicy.misc模块下的derivative函数 举例子: 求函数f(x)在x0处的导数 方式三 使用NumPy里的poly1d构造函数…...

    2024/5/7 15:13:09
  11. 继承 的学习

    子类继承父类 格式&#xff1a;class 子类 extends 父类{} 特点&#xff1a; 1.一个子类只有一个父类&#xff08;亲爹&#xff09; 2.java语言支持多层继承&#xff08;一个儿子可以有一个亲爹&#xff0c;还可以有一个亲爷爷&#xff09; 同一个包里面不能有同一个类 继承中成…...

    2024/4/5 3:27:25
  12. APISIX源码解析-插件-客户端IP【real-ip】

    real-ip 客户端IP插件。 关键属性 源码解析 real-ip 插件用于动态改变传递到 APISIX 的客户端的 IP 和端口。 local function get_addr(conf, ctx)if conf.source "http_x_forwarded_for" then-- use the last address from X-Forwarded-For header-- 用最后一个…...

    2024/5/8 6:18:24
  13. 小程序第一天-目录结构及配置文件

    在传统的web开发中所看到的目录结构和小程序中的目录结构是不一样的&#xff0c;比对如下 可以看出&#xff0c;微信小程序比传统web开发多了一层配置.json 微信小程序具体目录结构 其中最后两项需要注意一下&#xff01; 1.project.config.json文件的配置项与我们微信开发者工…...

    2024/5/7 20:25:43
  14. C++中的复制构造函数

    Copy Constructor in C What is a copy constructor? &#xff08;什么是复制构造函数&#xff1f;&#xff09; A copy constructor is a member function that initializes an object using another object of the same class. A copy constructor has the following gene…...

    2024/5/8 0:05:42
  15. leetcode之字符串二: 拼写单词

    原题: 力扣https://leetcode-cn.com/problems/find-words-that-can-be-formed-by-characters/ 一、题目要求 给你一份『词汇表』&#xff08;字符串数组&#xff09; words 和一张『字母表』&#xff08;字符串&#xff09; chars。 假如你可以用 chars 中的『字母』&#…...

    2024/4/13 20:50:14
  16. java中强制退出jvm的代码

    System.exit(0); 也就是说运行这句代码之后将结束java程序。...

    2024/4/17 15:01:34
  17. Pytorch中的torch.cat()函数

    参考链接 字面理解&#xff1a;torch.cat是将两个张量&#xff08;tensor&#xff09;拼接在一起&#xff0c;cat是concatnate的意思&#xff0c;即拼接&#xff0c;联系在一起。 C torch.cat( (A,B),0 ) #按维数0拼接&#xff08;竖着拼&#xff09;C torch.cat( (A,B),1 …...

    2024/5/3 19:59:51
  18. R 绘制柱形偏差图

    于是今天分享一下绘制代码给大家,下面是小伙伴发的图: 这幅图绘制的关键点有两个: 1、排序 2、在图里添加文本标签,并为不同颜色 数据的话大家根据类似格式整理成就可以了。 首先加载 R 包,读取测试数据: # 加载R包 library(ggplot2) library(ggprism) library(tidyver…...

    2024/4/7 19:25:01
  19. 使用vue脚手架初始化项目的命令是什么?

    vue init 模板名 项目名...

    2024/4/30 5:34:07
  20. 【Day1】ES5 (转为数字类型,字符串类型,布尔类型)

    日期&#xff1a;1月30日夜 1.转为数字类型 具有可转性的数值才能进行 数据类型转换 简单数据类型包含&#xff1a; number string boolean null undefined 转换的方式&#xff1a; Number(待转的数据) parseInt(待转的数据) parseFloat(待转的数据) 案例&#xff1a;&…...

    2024/5/5 11:18:18

最新文章

  1. 管易云与金蝶K3-WISE对接集成发货单查询2.0打通新增销售出库(红蓝字)

    管易云与金蝶K3-WISE对接集成发货单查询2.0打通新增销售出库&#xff08;红蓝字&#xff09; 源系统:管易云 金蝶管易云是金蝶集团旗下以电商和新零售为核心业务的子公司&#xff0c;公司于2008年成立&#xff0c;拥有从事电商及新零售业务相关专业知识工作者超过1000人。为伊利…...

    2024/5/8 10:42:05
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/5/7 10:36:02
  3. [C++/Linux] UDP编程

    一. UDP函数 UDP&#xff08;用户数据报协议&#xff0c;User Datagram Protocol&#xff09;是一种无连接的网络协议&#xff0c;用于在互联网上交换数据。它允许应用程序发送数据报给另一端的应用程序&#xff0c;但不保证数据报能成功到达&#xff0c;也就是说&#xff0c;它…...

    2024/5/3 8:59:07
  4. 产品推荐 | 中科亿海微推出亿迅®A8000金融FPGA加速卡

    01、产品概述 亿迅A8000金融加速卡&#xff0c;是中科亿海微联合金融证券领域的战略合作伙伴北京睿智融科&#xff0c;将可编程逻辑芯片与金融行业深度结合&#xff0c;通过可编程逻辑芯片对交易行情加速解码&#xff0c;实现低至纳秒级的解码引擎&#xff0c;端到端的处理时延…...

    2024/5/7 18:18:40
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/8 6:01:22
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/5/7 9:45:25
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/5/4 23:54:56
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/5/7 14:25:14
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/5/4 23:54:56
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/5/4 23:55:05
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/5/4 23:54:56
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/5/7 11:36:39
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/5/4 23:54:56
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/5/6 1:40:42
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/5/4 23:54:56
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/5/4 23:55:17
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/5/7 9:26:26
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/5/4 23:54:56
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/4 23:55:06
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/5/5 8:13:33
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/5/4 23:55:16
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/5/4 23:54:58
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/5/6 21:42:42
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/5/4 23:54:56
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; 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
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在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