数字图像处理与Python实现笔记之图像压缩
数字图像处理与Python实现笔记
- 摘要
- 绪论
- 1 数字图像处理基础知识
- 2 彩色图像处理初步
- 3 空间滤波
- 4 频域滤波
- 5 图像特征提取
- 6 图像压缩
- 6.1 图像压缩简介
- 6.2 熵编码技术
- 6.2.1 哈夫曼编码
- 6.2.2 算术编码
- 6.2.3 行程编码
- 6.2.4 LZW编码
- 6.3 预测编码
- 6.3.1 DM编码
- 6.3.2 DPCM编码
- 6.4 变换编码
- 6.4.1 K-L编码
- 6.4.2 离散余弦变换
- 6.5 JPEG编码
- 6.6 小结
摘要
- 简要介绍数字图像处理涉及的一些基本概念、基本运算、基本类型,以及如何通过Python对数字图像进行读取和简单操作。
- 以彩色图像为例对数字图像处理的基本操作进行介绍,熟悉数字图像处理的基本过程,主要包括颜色空间的基本概念、伪彩色图像处理操作,彩色图像处理简单操作。
- 瞄准在空间域中对图像进行增强,介绍空间滤波的机理、基本概念以及使用的基本技术。本章内容包括空间滤波基本概念、基于空间滤波的图像平滑处理、基于空间滤波的锐化操作以及混合空间增强。
- 从频域角度入手对图像处理及增强方法展开介绍。因为频域滤波所需的数学知识较多,所以本章采取由浅入深的策略,首先介绍一维傅里叶变换,其次介绍二维傅里叶变换和快速傅里叶变换,最后介绍图像频域滤波中出现的各种技术,其大体可分为低通滤波和高通滤波两大类。
- 从全局特征提取和局部特征提取两方面入手,分别介绍颜色特征、纹理特征、形状特征、边缘特征、点特征的提取方法。本章内容是目前机器视觉和图像处理领域的学者关注较多的内容,通过穿插较多的实例,帮助读者理解图像特征提取的基本技术。
- 瞄准如何减少图像传输及存储数据大小,介绍主要使用的压缩技术,包括有损压缩和无损压缩等,并使用
JPEG
压缩技术串讲全章知识点。 - 介绍图像的小波域表示及多分辨率表示。
绪论
-
人工智能是引领未来发展的战略性技术,是新一轮科技革命和产业变革的重要驱动力量,将深刻地改变人类社会生活。
-
促进人工智能和实体经济的深度融合,构建数据驱动、人机协同、跨界融合、共创分享的智能经济形态,更是推动质量变革、效率变革、动力变革的重要途经。
-
进年来,我国人工智能新技术、新产品、新业态持续涌现,与农业、制造业、服务业等行业的融合步伐明显加快,在技术创新、应用推广、产业发展等方面成效初显。
-
人工智能技术并不是一个新生事物,它在最近几年引起全球性关注并得到飞速发展的主要原因,在于它的三个基本要素(算法、数据、算力)的迅猛发展,其中又以数据和算力的发展尤为重要。
-
物联网技术的蓬勃发展使得数据累计的难度越来越低,而芯片算力的不断提升,使得过去只能通过云计算才能完成的人工智能运算,现在可以下沉到最普通的设备上完成。
-
物联网技术为机器带来感知能力,而人工智能则通过计算算力为机器带来了决策能力,正如感知和大脑对自然生命进化所起到的必然性作用。
1 数字图像处理基础知识
https://hulin.blog.csdn.net/article/details/107570020
2 彩色图像处理初步
https://hulin.blog.csdn.net/article/details/107578369
3 空间滤波
https://hulin.blog.csdn.net/article/details/107589248
4 频域滤波
https://hulin.blog.csdn.net/article/details/107609844
5 图像特征提取
https://hulin.blog.csdn.net/article/details/107639032
6 图像压缩
- 数字化之后的图像数据占用的空间非常大,如一幅分辨率为
800 * 600
像素的32位灰度图像,其像素数目位480000
,占用空间大小为480000
*32bit
=480000
*4B
= 1.83 * 1024 * 1024 B,即1.83MB。目前电影的帧率一般为24帧每秒,此分辨率下存储一秒的电影需要1.83
*24
=43.92MB
。 - 图像数据给图像存储及图像传输造成了很大的困难。图像压缩是将图像数据存在的冗余信息去掉,以实现有效压缩。
6.1 图像压缩简介
- 数据是用来表示信息的,如果不同的方法为表示给定量的信息,使用了不同的信息,那么使用较多数据量的方法中,有些信息必然代表了无用信息。冗余数据的存在为图像压缩提供了可能。
(1)编码冗余
如果一个图像的灰度级编码使用了多于实际需要的编码符号,就称该图像包含了编码冗余。如可以使用8位表示图像的像素,也可以使用1位表示该图像的像素,就称该图像存在编码冗余。
(2)像素间冗余
像素间冗余反应了图像中像素之间的相互关系。图像像素值并非完全随机,而是与其相邻像素存在某种关联关系。对于一幅图像,很多单个像素对视觉的贡献是冗余的。它的值可以通过与它相邻的像素值进行预测。因为任何给定像素的值可以根据与这个像素相邻的像素进行预测,所以单个像素携带的信息相对较少。
原图像数据:234 223 231 238 235
压缩后数据:234 -11 8 7 -3
(3)心理视觉冗余
眼睛对所有视觉信息感受的灵敏度不同,相比之下,有些信息在通常的视觉过程中并不重要,去除这些信息并不会明显降低图像质量。 - 编码冗余、像素间冗余、心理视觉冗余是一般图像压缩的基础,在此基础上发展出各类编码和压缩算法。按照压缩过程中是否出现信息丢失,可以将图片压缩算法大致分为有损压缩和无损压缩两类,无损图像压缩方法有行程长度编码、熵编码法等。有损图像压缩方法包括变换编码、分形压缩等。
- 无损压缩和有损压缩都是以更少的信息对原图像进行表示,但无损压缩在图像压缩之后可以将信息的原貌进行恢复,而有损压缩进行图像压缩后,会使部分信息丢失,导致无法完全进行原始图像的重建。
(1)熵编码或统计编码
熵编码或统计编码属于无损编码,给出现概率较大的符号赋予一个短码子,给出现概率较小的符号赋予一个长码字,从而使最终的平均码长很小。主要的熵编码方法包括哈夫曼编码、香农编码、算术编码。
(2)预测编码
基于图像数据的空间或时间冗余特性,用相邻的已知像素(或像素块)预测当前像素(或像素块)的取值,然后再对预测误差进行量化和编码,包括脉冲编码调制(PCM)、差分脉冲编码调制(DPCM)。
(3)变换编码
将空域上的图像变换到另一个变换域上,变换后图像的大部分能量只集中到少数几个变换系数上,采用适当的量化和熵编码就可以有效压缩图像。
(4)混合编码
混合编码是综合了熵编码、变换编码或预测编码的编码方法,如JPEG标准和MPEG标准。
6.2 熵编码技术
- 熵编码技术是一类典型无损编码技术。该类编码技术基于信息论对图像进行重新编码,通常的做法是给出现概率较高的符号一个较短的编码,而给出现概率较低的符号一个较长的编码,保证平均编码长度最短,主要编码方法包括哈夫曼编码、香农编码、及算术编码。
- 信息熵是表征某个数据集合或序列所需的最优编码长度的理论值,各种熵编码算法均是从不同角度对此理论值进行近似。
6.2.1 哈夫曼编码
- 哈夫曼编码是不定长编码。哈夫曼编码的基本方法是先对图像数据扫描一遍,计算出各种像素出现的概率,按概率大小指定不同长度的唯一码字,由此得到一张该图像的哈夫曼表。编码后的图像数据记录的是每个像素的码字,而码字与实际像素值对应关系记录在码表中。
- 哈夫曼编码的基本步骤:
(1)将需要考虑的像素值按概率排序,并将最低概率的像素符号联结为一个单一符号。
(2)对每个化简后的像素进行编码,从出现概率最小的像素符号开始,一直编码到图像中的所有元素。
import numpy as np
import queue# 定义需要编码的图像
image = np.array([[3, 1, 2, 4], [2, 4, 0, 2], [2, 2, 3, 3], [2, 4, 4, 2]])
# 计算每种元素出现的概率
hist = np.bincount(image.ravel(), minlength=5)
probabilities = hist / np.sum(hist)# 找出数据中的最小元素
def get_smallest(data):first = second = 1fid = sid = 0for idx, element in enumerate(data):if element < first:second = firstsid = fidfirst = elementfid = idxelif element < second and element != first:second = elementreturn fid, first, sid, second# 定义哈夫曼树
class Node:def __init__(self):"""元素值存储在叶子结点"""self.prob = Noneself.code = Noneself.data = Noneself.left = Noneself.right = Nonedef __lt__(self, other):"""定义优先树中排序规则:param other::return:"""if self.prob < other.prob:return 1else:return 0def __ge__(self, other):if self.prob > other.prob:return 1else:return 0# 构建哈夫曼树
def tree(probabilities):prq = queue.PriorityQueue()for color, probability in enumerate(probabilities):leaf = Node()leaf.data = colorleaf.prob = probabilityprq.put(leaf)while prq.qsize() > 1:new_node = Node()l = prq.get()r = prq.get()# 找出叶子结点中概率最小的两个# 移除最小的两个结点new_node.left = l # 左侧是较小的new_node.right = rnew_prob = l.prob + r.prob # 新概率是两个小概率之和new_node.prob = new_probprq.put(new_node) # 插入新结点,替代原有的两个结点return prq.get() # 返回根结点完成树的构建# 对哈夫曼树进行遍历,得出编码
def huffman_traversal(root_node, tmp_array, f):if root_node.left is not None:tmp_array[huffman_traversal.count] = 1huffman_traversal.count += 1huffman_traversal(root_node.left, tmp_array, f)huffman_traversal.count -= 1if root_node.right is not None:tmp_array[huffman_traversal.count] = 0huffman_traversal.count += 1huffman_traversal(root_node.right, tmp_array, f)huffman_traversal.count -= 1else:huffman_traversal.output_bits[root_node.data] = huffman_traversal.count # 得出每个元素的编码值bit_stream = ''.join(str(cell) for cell in tmp_array[1:huffman_traversal.count])color = str(root_node.data)wr_str = color + '' + bit_stream + '\n'f.write(wr_str)returnroot_node = tree(probabilities)
tmp_array = np.ones([4], dtype=int)
huffman_traversal.output_bits = np.empty(5, dtype=int)
huffman_traversal.count = 0
f = open('code.txt', 'w')
huffman_traversal(root_node, tmp_array, f)
- 哈夫曼编码根据信息论进行数据编码构造,能够达到接近理论最优的效率,但也存在编码过于复杂的问题
6.2.2 算术编码
- 在算术编码中,信源符号和编码之间的一一对应关系并不存在。一个算术编码要赋给整个信源符号序列,而编码本身确定0和1之间的1一个实数区间。随着符号序列中的符号数量增加,用来代表它的区间减小而表达区间的信息单位数量变大。
- 算术编码的具体方法是:将编码的信源消息表示成实数轴0~1的一个间隔,消息越长,编码表示的间隔越小,即这一间隔所需的二进制位越多。
- 与哈夫曼编码不同,采用算术编码每个符号的平均编码长度可以为小数。
- 算术编码的思想如下。
(1)对一组信源符号,按照符号的概率大小排序,将[0,1)设为当前分析区间。按信源符号的概率序列,在当前分析区间划分比例间隔。
(2)检索“输入消息序列”,锁定当前消息符号(初次检索的话就是第一个消息符号),找到当前符号在当前分析区间的比例间隔,将此间隔作为新的当前分析区间,并把当前分析区间的起点(即左端点)指示的数补加到编码输出数里。当前消息符号指针后移。
(3)仍然按照信源符号的概率序列在当前分析区间划分比例间隔。然后重复第二步,直到输入消息序列检索完毕为止。
(4)最后的编码输出数就是编码好的数据。 - 在算术编码中需要注意3个问题。
(1)由于实际计算机的精度不可能无限长,运算中出现溢出是一个明显的问题,但多数计算机都有16位、32位、64位的精度,因此这个问题可以使用比例缩放方法解决。
(2)算术编码器是一种对错误很敏感的方法,如果有一位发生错误,就会导致整个消息翻译错误。 - 算术编码可以是静态的或者自适应的。在静态算术编码中,信源符号的概率是固定的。在自适应算术编码中,信源符号的概率根据编码时,符号出现的频率动态的修改,在编码期间估算信源符号概率的过程叫做建模。
- 需要开发动态编码的原因是事前知道精确的信源概率是很难的,而且不切实际。
6.2.3 行程编码
- 行程长度编码(Run-Length Encoding,RLE)压缩算法是Windows系统中使用的一种图像文件压缩方法,基本思想是:将一扫描行中颜色值相同的相邻像素用两个字段表示,第一个字段是一个计数值,用于指定像素重复的次数;第二个字段是具体像素的值,主要通过压缩除掉数据中的冗余字节或字节中的冗余位,从而达到减少文件所占空间的目的。
- 译码时按照与编码时采用的相同规则进行,还原后得到的数据与压缩前的数据完全相同。因此,RLE是无损压缩技术。RLE编码简单直观,编码/解码速度快。
- RLE所能获得的压缩比主要取决于图像本身的特点,图像中具有相同颜色的图像块越大,图像块数目越少,压缩比就越高。
- 行程编码适合于对二值图像的编码,如果图像由很多块颜色会灰度相同的大面积区域组成,采用行程编码可以达到很大的压缩比。
6.2.4 LZW编码
- LZW编码是一种无损压缩技术。该算法通过建立编译表,实现字符重用与编码,适用于信源中重复率很高的数据压缩,
- LZW压缩有3个重要的对象:数据流(CharStream),编码流(CodeStream),编译表(String Table)。
- 编码时,数据流是输入对象(文本文件的数据序列),编码流就是输出对象(经过压缩运算的编码数据);解码时,编码流是输入对象,数据流是输出对象;而编译表是编码和解码时都需要借助的对象。
- LZW压缩算法的基本原理:提取原始文本文件数据中的不同字符,基于这些字符创建一个编译表,然后用编译表中的字符的索引,代替原始文本文件数据中相应字符,减少原始数据大小。编译表不是事前创建好的,而是根据原始文件数据动态创建的,解码时还要从已编码的数据中还原出原来的编译表。
- LZW的基本概念如下。
- 字符(Character):最基础的数据元素,在文本文件中就是一个字节,在光栅数据中就是一个像素的颜色在指定颜色列表中的索引值。
- 字符串(String):由几个连续的字符组成。
- 前缀(Prefix):也是一个字符串,通常用在另一个字符的前面,而且它的长度可以为0。
- 根(Root):一个长度的字符串。
- 编码(Code):一个数字,按照固定长度(编码长度)从编码流中取出,编译表的映射值。
- 图案:一个字符串,按不定长度从数据流中读出,映射到编译表条目。
- 针对该编码过程的仿真实验代码如下。
string = 'abbababac'
dictionary = {'a': 1, 'b': 2, 'c': 3}
last = 4
p = ""
result = []
for c in string:pc = p + cif pc in dictionary:p = pcelse:result.append(dictionary[p])dictionary[pc] = lastlast += 1p = c
if p != '':result.append(dictionary[p])
print(result)
6.3 预测编码
- 预测编码压缩技术建立在信号数据的相关性上,根据某一模型利用以前的样本值对新样本进行预测,以此减少数据在时间和空间上的相关性,从而达到压缩数据的目的。
- 预测编码的基本思想是:通过每个像素中新增信息进行提取和编码,以此消除像素之间的冗余,这里的新增信息是指像素当前实际值和预测值的差。如果已知图像一个像素离散幅度的真实值,利用其相邻像素的相关性,预测它的可能数值。
- 预测编码算法属于有损编码。
6.3.1 DM编码
6.3.2 DPCM编码
- 模拟量到数字量的转换过程是脉冲编码调制过程(Pulse Code Modulation,PCM)。对于图像而言,直接以PCM编码存储量很大。
- 预测编码可以利用相邻像素之间的相关性,用前面已出现的像素值估计当前像素值,对实际值与估计值的差值进行编码。
- DPCM编码的基本步骤:
(1)读取待压缩图像。
(2)计算预测器产生的误差。
(3)量化误差。 - 解码器流程:
(1)接收数据的量化误差
(2)计算样本的预测值
(3)将误差加到预测值中。
6.4 变换编码
- 变换编码不是直接对空域图像进行编码,而是首先将空域图像信号映射变换到另一个正交矢量空间(变换域或频域),产生一批变换系数,然后对这些变换系数进行编码处理。
- 变换编码是一种间接编码方法,其中关键问题是在时域或空域描述时,数据之间相关性大,数据冗余度大,经过变换在变换域中描述,数据相关性大大减少,数据冗余量减少,参数独立,数据量少,这样再进行量化,编码就能得到较大的压缩比。
- 基于变换编码的图像压缩和解压过程
6.4.1 K-L编码
- K-L变换又称Hotelling变换,特征向量变换或主分量方法。K-L变换可使原来多波段图像经变换后提供出一组不相关的图像变量,最前面的主分量具有较大的方差,包含了原始影像的主要信息,所以要集中表达信息,突出图像某些细节特征,可采用主分量变换完成。
- K-L变换的主要思想
(1)目的是寻找任意统计分布的数据集合主要分量的子集。
(2)基向量满足相互正交性,且由它定义的空间最优地考虑了数据的相关性。
(3)将原始数据集合变换到主分量空间,使单一样本的互相关性降到最低点。
6.4.2 离散余弦变换
- 离散余弦变换(DCT),经常被信号处理和图像处理使用,用于对信号和图像(包括静止图像和运动图像)进行有损数据压缩。这是由于离散余弦变换具有很强的“能量集中”特性:大多数的自然信号(包括声音和图像)的能量都集中在离散余弦变换后的低频部分,而且当信号具有接近马尔可夫过程的统计特性时,离散余弦变换的去相关性接近于K-L变换的性能。
(1)分块:在对输入图像进行DCT前,需要将图像分成子块。
(2)变换:对每个块的每行进行DCT,然后对每列进行变换,得到的是一个变换系数矩阵。
(3)(0,0)位置的元素就是直流分量,矩阵中的其他元素根据其位置,表示不同频率的交流分量。
6.5 JPEG编码
- JPEG(Joint Picture Expert Group)是由ISO(国际标准化组织)和CCITT(国际电话电报咨询委员会)联合成立的专家组负责制定静态图像(彩色与灰度图像)的压缩算法。
- 该编码方案定义了3种编码系统:
(1)基于DCT的有损编码基本系统,可用于绝大多数压缩应用场合。
(2)用于高压缩比、高精确度或渐近重建应用的扩展编码系统。
(3)用于无失真应用场合的无损系统。
6.6 小结
- 本章分别从熵编码、变换编码、预测编码3个方面,讲述了数字图像压缩的相关知识。
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- vnc远程安装,盘点五款非常好用的vnc远程安装软件
vnc远程安装不知道大家听说过没有,这是一款什么软件呢?其实它的全称叫做vnc远程访问工具,这是一款远程连接软件。网络上vnc远程访问软件五花八门,那我们到底该如何选择呢?小编给大家整理了非常好用的五款vnc远程软件。 第一款:IIS7服务器管理工具 这个工具里面的VNC功能可…...
2024/3/16 14:45:43 - 考研小札
左盼盼,右盼盼,终于盼来了录取通知书,也算是抓住七月的尾巴。距离考研初试结束已经七个多月了,复试结束也两个多月了。总想写点东西纪念一下这段日子,却不知道如何开始,又如何结束。不如,就趁现在,开始吧。我的本科专业是电子信息工程,一个低不成高不就般的存在。涉猎…...
2024/3/16 14:45:42 - 爬虫中的反爬与反反爬
声明:文章仅源自个人兴趣爱好,不涉及他用,侵权联系删。获得转载许可请注明转自https://leejason.blog.csdn.net/article/details/107457651 爬虫中的反爬与反反爬1 爬虫工程师与开发工程师的较量2 反爬汇总2.1 headers、cookie验证2.2 用户行为验证2.3 封IP2.4 JavaScript加密…...
2024/3/16 14:45:41 - 资料|C++.Primer.Plus(第6版)中文版
天下足球下载地址:https://www.yanxishe.com/resourceDetail/1903?from=leiphonecolumn_res716pm 内容简介 《C Primer Plus(第6版)中文版》详细讲解了C语言的基本概念和编程技巧。 《C Primer Plus(第6版)中文版》共17章。第1、2章介绍了C语言编程的预备知识。第3…...
2024/3/16 14:45:40 - 数据库设计一般步骤(转载)
数据库设计的步骤(1)了解功能需求 在设计数据库之前,设计人员必须要先了解系统的功能需求。这里可以通过阅读产品需求规格说明书,与项目相关人员(比如项目经理、客户等)进行充分沟通。(2)定义实体 了解系统功能需求之后,设计人员通过分析系统功能定义出系统有哪些实体…...
2024/3/16 14:45:40 - 记录博——集成学习 tree-based ensemble learning
最近研究了一下集成学习,想把变量之间的关系跳过回归这一层面,用集成学习这种分类的方法实现。 关于集成学习的逻辑和数学公式的推导,我这里不详细解释,周志华老师的西瓜书有清晰的讲解,(python的sklearn库现在有集成学习的方法,感天动地,懒人福音!) 但是关于集成学习…...
2024/3/16 14:45:39 - 路过的大佬,求救啊!!!小白快要疯了-------maven编译idea-hadoop-plugins插件,在cmd下操作
问题1:如图这个虽然警告,但起码出现了build success。下面的就恶心了,怎么修改pom,setting文件都不行。这是我idea中pom的配置加粗样式看了网上好多的说什么加入compiler插件,更改配置,jdk设置一点吧,各种修改,可我的不知为啥完全免疫。路过的大佬,帮忙看下,解决不了,…...
2024/3/16 14:45:39 - Swing常用事件处理
事件处理 定义: Swing 组件中的事件处理专门用于响应用户的操作,例如,响应用户的单击鼠标,按下键盘等操作。 Swing 事件处理涉及的三类对象: **事件源:**事件发生的场所,通常就是产生事件的组件,例如窗口,按钮,菜单等。 **事件对象:**封装了 GUI 组件上发生的特定事…...
2024/3/16 14:45:37 - [鸿篇巨制]蚂蚁金融级分布式架构SOFAStack编年史
简介:十几年前,一群支付宝“懒汉”程序员一起开发了一套.......有人说,历史是由懒汉推动的。科技的演进史,其实就是人类不断偷懒的过程。我们懒得浪费体力,于是有了蒸汽机;我们懒得动笔演算,于是有了电子计算机;我们懒得随身携带现钞,于是有了线上交易和无接触支付………...
2024/3/16 13:52:46 - 如何快速学Web前端开发 JavaScript函数好学吗
如何快速学Web前端开发?JavaScript函数好学吗?很多企业在招聘Web前端工程师时会倾向于招聘JavaScript技术的人才,因此专业的郑州Web前端培训教程中必然要包含JavaScript知识。函数是为完成某一功能的程序指令(语句)的集合,每个初学者在学习JavaScript时都要学习函数,今天千…...
2024/3/29 1:57:26 - 如何快速学Web前端开发?JavaScript函数好学吗?
如何快速学Web前端开发?JavaScript函数好学吗?很多企业在招聘Web前端工程师时会倾向于招聘JavaScript技术的人才,因此专业中必然要包含JavaScript知识。函数是为完成某一功能的程序指令(语句)的集合,每个初学者在学习JavaScript时都要学习函数,今天优逸客太原老师就给大家…...
2024/3/16 13:52:44 - 2020A证(安全员)作业考试题库及A证(安全员)模拟考试系统
题库来源:安全生产模拟考试一点通公众号小程序2020A证(安全员)作业考试题库及A证(安全员)模拟考试系统,包含A证(安全员)作业考试题库答案解析及A证(安全员)模拟考试系统练习。由安全生产模拟考试一点通公众号结合国家A证(安全员)考试最新大纲及A证(安全员)考试真题出具,有助…...
2024/3/16 13:52:44 - 百家云CEO李钢江给员工们的一封信(转载)
2020年7月,百家云迎来了3岁的生日。7月30日这天,百家云员工的邮箱里,收到了一封十分特别的来信。百家云CEO李钢江代表公司高管团队发布了一封全员邮件,文中回顾了百家云创业以来的核心坚守,也对团队全员提出了一些新的要求和期待。一直以来,百家云都把我们的用户看做是最…...
2024/3/16 14:45:36 - 2020高处安装、维护、拆除考试题库及高处安装、维护、拆除复审模拟考试
题库来源:安全生产模拟考试一点通公众号小程序2020高处安装、维护、拆除考试题库及高处安装、维护、拆除复审模拟考试,包含高处安装、维护、拆除考试题库答案解析及高处安装、维护、拆除复审模拟考试练习。由安全生产模拟考试一点通公众号结合国家高处安装、维护、拆除考试最…...
2024/3/16 14:45:35 - 自定义注解-aop实现日志记录
自定义注解-aop实现日志记录关于注解,平时接触的可不少,像是 @Controller、@Service、@Autowried 等等,不知道你是否有过这种疑惑,使用 @Service 注解的类成为我们的业务类,使用 @Controller 注解的类就成了请求的控制器,使用 @Autowried 注解的类就会帮我们实现自动注入…...
2024/3/16 14:45:34 - 2020B证(安全员)考试及B证(安全员)实操考试视频
题库来源:安全生产模拟考试一点通公众号小程序2020B证(安全员)考试及B证(安全员)实操考试视频,包含B证(安全员)考试答案解析及B证(安全员)实操考试视频练习。由安全生产模拟考试一点通公众号结合国家B证(安全员)考试最新大纲及B证(安全员)考试真题出具,有助于B证(安全员)怎么…...
2024/3/16 14:45:32 - mysql事务和隔离级别底层原理浅析
首先回顾一下什么是事务,事务是数据库操作的最小工作单元,是作为单个逻辑工作单元执行的一系列操作;这些操作作为一个整体一起向系统提交,要么都执行、要么都不执行;事务是一组不可再分割的操作集合(工作逻辑单元)。 事务的特性:原子性(Atomicity):原子性是指事务包…...
2024/3/16 14:45:31 - android原生项目加载H5页并进行js交互
一、我项目中选择DSBridge作为H5页面与Native进行通信 1、原生的webView对js的支持比较生硬,选择DSBridge进行混合开发它支持跨平台,双向调用,仅支持同步调用(符合我的项目需求),简单易用; 2.添加jitpack,在项build.gradle maven { url "https://jitpack.io"…...
2024/3/28 20:36:33 - springBoot的重试,异步,过滤器,拦截器,全局异常处理,日志记录
以下 均是实例,没有进行原理说明,建议单独百度看原理一起食用(也可以看guide哥的全方位的springBoot:https://github.com/Snailclimb/springboot-guide)1. springBoot 解决跨域@Configuration public class CorsConfig implements WebMvcConfigurer {@Overridepublic void…...
2024/3/16 14:45:29 - goland 2020.2 更新发布了。
2020-7-31 我收到的推送。说明文章 :https://blog.jetbrains.com/go/2020/07/30/introducing-goland-2020-2/,(英文)以下介绍几点:1,Go模块的新功能go module支持在 go.mod 文件中进行注释2,更好地呈现代码中可能存在的问题和缺陷的位置,新的代码检查,比以前更好的代码…...
2024/3/16 14:45:28
最新文章
- 2024年北京事业单位报名照片要求,注意格式
2024年北京事业单位报名照片要求,注意格式...
2024/3/29 8:34:40 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/3/20 10:50:27 - Python学习笔记(一)
一:安装Python(省略) 二:测试运行 三:Python解释器: 四:Python语法知识: 4.1:字面量: 4.2:注释: 4.3:变量 4.4ÿ…...
2024/3/28 8:30:49 - Controller中接收数组参数
1、场景 需要根据用户id集合批量删除用户数据,前端使用post请求,controller中参数接收数组参数并根据用户id删除用户基本信息 2、分析处理: 2.1、前端请求类型contentType:application/json 请求体中为json字符串,后端新建一个U…...
2024/3/29 7:25:45 - 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/3/28 16:59:55 - 【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/3/28 4:39:34 - Spring cloud负载均衡@LoadBalanced LoadBalancerClient
LoadBalance vs Ribbon 由于Spring cloud2020之后移除了Ribbon,直接使用Spring Cloud LoadBalancer作为客户端负载均衡组件,我们讨论Spring负载均衡以Spring Cloud2020之后版本为主,学习Spring Cloud LoadBalance,暂不讨论Ribbon…...
2024/3/28 5:03:31 - TSINGSEE青犀AI智能分析+视频监控工业园区周界安全防范方案
一、背景需求分析 在工业产业园、化工园或生产制造园区中,周界防范意义重大,对园区的安全起到重要的作用。常规的安防方式是采用人员巡查,人力投入成本大而且效率低。周界一旦被破坏或入侵,会影响园区人员和资产安全,…...
2024/3/28 19:59:46 - VB.net WebBrowser网页元素抓取分析方法
在用WebBrowser编程实现网页操作自动化时,常要分析网页Html,例如网页在加载数据时,常会显示“系统处理中,请稍候..”,我们需要在数据加载完成后才能继续下一步操作,如何抓取这个信息的网页html元素变化&…...
2024/3/28 21:57:52 - 【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/3/28 9:07:44 - 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】
👨💻博客主页:花无缺 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】🌏题目描述🌏输入格…...
2024/3/28 18:09:48 - 【ES6.0】- 扩展运算符(...)
【ES6.0】- 扩展运算符... 文章目录 【ES6.0】- 扩展运算符...一、概述二、拷贝数组对象三、合并操作四、参数传递五、数组去重六、字符串转字符数组七、NodeList转数组八、解构变量九、打印日志十、总结 一、概述 **扩展运算符(...)**允许一个表达式在期望多个参数࿰…...
2024/3/28 21:57:50 - 摩根看好的前智能硬件头部品牌双11交易数据极度异常!——是模式创新还是饮鸩止渴?
文 | 螳螂观察 作者 | 李燃 双11狂欢已落下帷幕,各大品牌纷纷晒出优异的成绩单,摩根士丹利投资的智能硬件头部品牌凯迪仕也不例外。然而有爆料称,在自媒体平台发布霸榜各大榜单喜讯的凯迪仕智能锁,多个平台数据都表现出极度异常…...
2024/3/28 9:58:22 - Go语言常用命令详解(二)
文章目录 前言常用命令go bug示例参数说明 go doc示例参数说明 go env示例 go fix示例 go fmt示例 go generate示例 总结写在最后 前言 接着上一篇继续介绍Go语言的常用命令 常用命令 以下是一些常用的Go命令,这些命令可以帮助您在Go开发中进行编译、测试、运行和…...
2024/3/28 10:24:59 - 用欧拉路径判断图同构推出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/3/28 19:51:36 - 【NGINX--1】基础知识
1、在 Debian/Ubuntu 上安装 NGINX 在 Debian 或 Ubuntu 机器上安装 NGINX 开源版。 更新已配置源的软件包信息,并安装一些有助于配置官方 NGINX 软件包仓库的软件包: apt-get update apt install -y curl gnupg2 ca-certificates lsb-release debian-…...
2024/3/28 19:36:32 - 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/3/28 17:15:47 - 【论文阅读】MAG:一种用于航天器遥测数据中有效异常检测的新方法
文章目录 摘要1 引言2 问题描述3 拟议框架4 所提出方法的细节A.数据预处理B.变量相关分析C.MAG模型D.异常分数 5 实验A.数据集和性能指标B.实验设置与平台C.结果和比较 6 结论 摘要 异常检测是保证航天器稳定性的关键。在航天器运行过程中,传感器和控制器产生大量周…...
2024/3/28 8:42:54 - --max-old-space-size=8192报错
vue项目运行时,如果经常运行慢,崩溃停止服务,报如下错误 FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory 因为在 Node 中,通过JavaScript使用内存时只能使用部分内存(64位系统&…...
2024/3/28 8:14:39 - 基于深度学习的恶意软件检测
恶意软件是指恶意软件犯罪者用来感染个人计算机或整个组织的网络的软件。 它利用目标系统漏洞,例如可以被劫持的合法软件(例如浏览器或 Web 应用程序插件)中的错误。 恶意软件渗透可能会造成灾难性的后果,包括数据被盗、勒索或网…...
2024/3/28 19:58:12 - JS原型对象prototype
让我简单的为大家介绍一下原型对象prototype吧! 使用原型实现方法共享 1.构造函数通过原型分配的函数是所有对象所 共享的。 2.JavaScript 规定,每一个构造函数都有一个 prototype 属性,指向另一个对象,所以我们也称为原型对象…...
2024/3/28 21:57:45 - C++中只能有一个实例的单例类
C中只能有一个实例的单例类 前面讨论的 President 类很不错,但存在一个缺陷:无法禁止通过实例化多个对象来创建多名总统: President One, Two, Three; 由于复制构造函数是私有的,其中每个对象都是不可复制的,但您的目…...
2024/3/28 8:24:01 - python django 小程序图书借阅源码
开发工具: PyCharm,mysql5.7,微信开发者工具 技术说明: python django html 小程序 功能介绍: 用户端: 登录注册(含授权登录) 首页显示搜索图书,轮播图࿰…...
2024/3/29 8:23:18 - 电子学会C/C++编程等级考试2022年03月(一级)真题解析
C/C++等级考试(1~8级)全部真题・点这里 第1题:双精度浮点数的输入输出 输入一个双精度浮点数,保留8位小数,输出这个浮点数。 时间限制:1000 内存限制:65536输入 只有一行,一个双精度浮点数。输出 一行,保留8位小数的浮点数。样例输入 3.1415926535798932样例输出 3.1…...
2024/3/28 9:26:43 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下: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