matlab拼碎纸片过程,碎纸片拼接复原模型

1. 引言

破碎文件的拼接在司法物证复原、历史文献修复以及军事情报获取等领域都有着重要的应用。企事业、机关、院校和军队基于保密的需要,使用碎纸机对重

要文件,单据以及材料进行销毁。一些重要的文件随着时间流逝,残破不全,因此,又需要将已经破碎的文档重新恢复。

传统上,拼接复原工作需由人工完成,准确率较高,但效率很低。特别是当碎片数量巨大,人工拼接很难在短时间内完成任务。随着当代科技和计算机技术的快速发展,人们试图开发碎纸片自动拼接技术,以提高对碎纸片文件和图片的拼接复原效率。

国内一些学者对碎纸片复原技术进行了研究,其中周丰提出了一种基于序列的二维图像碎纸片轮廓匹配算法[1],何鹏飞研究了基于蚁群优化算法的纸片拼接技术[2],罗智中[3]研究了基于文字特征的文档碎纸片半自动拼接方法,除此之外学者们还提出并研究了其他各种相应的技术[4-10]。然而目前通过计算机算法对破碎文档进行恢复的技术研究还不多,基本上没有一种全自动的碎纸片恢复技术,因此,一种能够快速且高效的恢复碎纸机数据文档技术的研究有巨大的现实意义。本文在借鉴其他学者研究基础上,对边缘规范的碎纸片拼接技术进行了研究。

2. 模型假设及符号说明

2.1. 模型假设

1) 设碎纸图片与真实文件纸张大小、颜色、边缘情况相同;

2) 假设碎纸照片边缘完整,不存在破损;

3) 假设所有碎纸片的扫描情况相同;

2.2. 符号说明

A

i ——编号i的图片的灰度矩阵;

B

i ——编号i的图片二值化处理后矩阵;

C

i ——编号i的图片二维边缘矩阵;

D

,

D

,

D

,

D

‴ ——边缘匹配度矩阵;

E

i ——编号

i 的图片再次处理后的0-1矩阵;

F ——边缘匹配度之和矩阵。

3. 问题分析

3.1. 中文碎纸片的分析

本论文数据来源于2013年全国大学生数学建模试题B题附件3、4,碎纸片均为一份纸张撕裂所得,不会存在含有相同信息的公共部分,下面不再重述。

附件3、4中所给的图片为扫描原纸张碎片后得到的BMP格式的图片,图片像素均为

180

×

72 ,使用matlab中的imread函数[11,12]可做出图片的灰度矩阵

A

i (

i

=

1

,

2

,

,

209 )。举例如下(由于该像素图片转换后为

180

×

72 的矩阵,论文中无法放置,所以仅简单举例说明,论文中若还出现庞大的矩阵,同本说明):

A

i

=

(

255

255

0

255

220

150

255

0

0

)

矩阵的中元素表示该位置图片灰度,255表示为白,0为黑,图片中信息为黑白文字信息,但由于文字信息会存在阴影,所以矩阵中出现了介于0-255的元素。为了方便应用,可对黑白图片做[13]二值化处理,将上例中

A

i 转化为如下0-1矩阵:

B

i

=

(

0

0

1

0

1

1

0

1

1

)

其中白色用0值表示,非白色用1表示。

将附件3、4中

11

×

19 张图片做如上处理得0-1矩阵

B

i

(

i

=

1

,

2

,

,

209

) ,矩阵阶数为

180

×

72 。

分别提取

B

i 矩阵第1列和第72构成新的

180

×

2 阶边缘矩阵。搜索所有图片矩阵发现

C

14

,

C

128 矩阵中均有一列为0,可认为编号为014和128的图片为相邻的两张图片,两张图片匹配的原则示例如图1。

将左边矩阵的第二列元素与右边矩阵的第一列元素进行两两匹配,记录元素相同的个数,个数除以180为左边矩阵第二列对右边矩阵第一列的边缘匹配度,记为:

D

i

j

=

180

定义:

D

i

j

=

180 ——矩阵匹配度

将所有碎纸片的0-1矩阵做如上匹配过程,可依次选取与其匹配的碎纸片。图1中左边矩阵第一列与右边矩阵第二列匹配的原则同上。

将附件3和附件4中各自的209碎纸片做同样的图像处理转化为灰度矩阵后进行二值化处理得到与其相对应的矩阵,根据结果可知图片转化后的矩阵为

180

×

72 阶的,若使用边缘匹配的方法,一张碎纸片对应其他208张碎纸片的边缘匹配相同的像素点有208种情况,变化范围为

0

-

180 可知若直接采用边缘匹配中的方法得到的结果可能出现多个相同或无法判断的情况,所以这里我们先考虑附件中碎纸片的特

3127b342bb519bf5e08518a90d6242d7.png

Figure 1. The matching diagram of 014 and 128 two images

图1. 014与128两张图片的匹配示意图

性。

观察图2发现,通过查阅资料分析[3]基于文字特征的文档碎纸片半自动拼接,每一行的绝大多数中文文字均可认为拥有同一上界、同一下界(图2最右端出现了“一”字,但是同行还存在其他文字,可认为同一行文字有同一上界与同一下界),我们可以根据这一特性,利用聚类分析[14]方法并使用Matlab软件将匹配度高及位置相同的碎纸片归类为一组[3]。

利用聚类方法归类步骤:

1) 搜索每一张碎纸片转化后二值化矩阵

C

i 的每一行,若矩阵该行中存在数值1,则将该行全部赋值为1,若这一行元素全为0,则将该行全部赋值为0,其中1表示本行存在灰度小于255的像素,0表示不存在灰度小于255的像素,这样将209张碎纸片做出新的二值化矩阵

E

i ;

2) 同3.1的分析取边缘做边缘匹配得修改后的边缘匹配度矩阵

D ,匹配度高则说明碎纸片的文字信息处于同一水平位置,见图2;

3) 在2)完成后如果未完全匹配,则进行再人工干预,得到较优的结果[11]见图3。

4) 得到很多组有相同位置的碎纸片后,在每一组内采用边缘匹配方法,这里为了防止出现两白边匹配造成碎纸片连接混乱的现象,要加以限制。方法为:若在组内做边缘匹配出现匹配度为1的情况,则暂时不连接此碎纸片,从剩余的碎纸片出发做边缘匹配与其他碎纸片连接,直到组内所有碎纸片均已覆盖。

5) 这样再通过一定人工干预可以得到拼接复原后的11横行碎纸片,再同样使用边缘匹配方法,将得到的11行碎纸条长边进行边缘匹配做出

11

×

11 的匹配度矩阵后找最大匹配度作为连接的碎纸条[15],同样为了防止出现两白边匹配造成碎纸片连接混乱的现象,要加以限制。方法为:若在组内做边缘匹配出

13f7063ccc15774b03b26eb6524178d7.png

Figure 2. The images after secondary handling

图2. 处理后的图片

18f928a934c949427f64b84dc0bb3cf6.png

Figure 3. The images after secondary handling

图3. 二次处理后的图片

现匹配度为1的情况,则暂时不连接此碎纸片,从剩余的碎纸片出发做边缘匹配与其他碎纸片连接,直到11张拼接后的碎纸片均已覆盖。最后加以人工处理,得到完整的原文件。

3.2. 英文碎纸片的分析

碎纸片的英文在位置上也有一定的规则可循。如图4。

可以发现英文字母的主要的部分拥有同一上界和同一下界,但是跟中文不同,英文中会出现一些“y”、“d”之类的字母,为了同样使用3.1中的方法我们通过观察附件4中图片的像素情况,将图片中每一行中黑色像素数少于13(该值的选取是为了方便二值化转化,也可以选取别的数字)的及字母的次要部分转变为二值化矩阵中的0,将每一行中黑色像素大于等于13的及字母的主要部分转化为二值化矩阵中的1,这样得到的新的二值化矩阵

E

i ,可认为图像转变为下图5表示的方式,同样使用3.1中的分析方法将新的二值化矩阵做边缘匹配,匹配度高的可认为两碎纸片在原纸张中位于同一行,把匹配度高于0.9的元素分为一组后,对每一组进行边缘匹配。

考虑英文字符的情况,在3.1基础上,对组内图片原始二值化矩阵边缘匹配度矩阵

D 每一行的搜索,若矩阵的任意一行中出现匹配度大于0.9的元素个数超过2个,则加以人工干预,根据文章的格式、内容选择应该连接的碎纸片,其他过程同3.1,区别仅为本文中需要对软件执行过程进行人工干预。

e8b1495fea3ca090a6a6008fe84ba060.png

Figure 4. Demonstrates picture 1

图4. 演示图片1

72ca27aa5a878c7bf85ec5212d23b28b.png

Figure 5. Demonstrates picture 2

图5. 演示图片2

4. 模型的建立与求解

4.1. 中文碎纸片复原的模型建立与求解

搜索每一张碎纸片转化后的0-1矩阵

C

i 的每一行,若存在黑色即矩阵该行中存在数值1,则将该行全部赋值为1,若这一行不存在黑即此行元素全为0,则将该行全部赋值为0,这样将209张碎纸片做出新的二值化矩阵

E

i ,之后按照3.1中的定义做边缘匹配,做出矩阵大小为

209

×

209 边缘匹配度矩阵

D (由于矩阵太大,在论文中不给出),元素

D

i

j 为处理后的碎纸片边缘二值化矩阵

i 的第二列与处理后的碎纸片边缘二值化矩阵

j 第一列的边缘匹配度,匹配度高则说明碎纸片的文字信息处于同一水平位置。在矩阵

D 中每一行选取匹配度大于0.9的元素,进行统计分组,可得结果如表1。

可以看出在取匹配度为0.9及以上时,分出了20个组,其中组内元素最多的为19,组内元素最少的为1。而最后的结果应该为11行,我们需要对这些组中的元素进行合并后得到11行,所以我们要先考虑元素数量为19的组,再考虑其他元素数多的组,对组内图片进行3.1中的边缘匹配,匹配后的结果在与元素数少的组做匹配与人工处理。

以第2组为例,该组包含19个元素,对于组内的19个元素的原始二值化矩阵进行上述中的边缘匹

44ff6901df27d6c3ba0a51ed127d4f25.png

Table 1. Grouping

表1. 分组情况

配,通过结果观察本题模型第一步确定模型的可行性,其他的组的处理情况相同,不再重述。结果如表2。

分别复原得到图片,观察图6、图7。

对于第二问中文碎纸片的复原问题,通过上面的结果发现匹配结果较好,对于中文的碎纸片的拼接复原即使过程中未加入人工干预也可以得到较优的结果。

可发现该组中文字位置符合想象,及同一行中的文字拥有同一上界和同一下界,在这一组中Matlab软件很好的将碎纸片拼接出来,思考为什么会出现上面图6、图7两者不能匹配在一起的原因。可发现拼

44ff6901df27d6c3ba0a51ed127d4f25.png

Table 2. Internal group

表2. 内部分组

e3cf08b279309ef309e942c8490dfaf5.png

Figure 6. The second set of splice results (1)

图6. 第二组拼接结果(1)

3da2c4fe9b518e5f63182c9bfda5051f.png

Figure 7. The second set of splice results (2)

图7. 第二组拼接结果(2)

接复原后的图6、图7左右两侧均存在白边,仅用计算机无法识别两者先后,需加以人工干预,通过对文章的内容、结构、形式的观察人工拼接,得出结果。改进后的图片排序见表2,复原图片见图8。

通过结果可以发现拼接程度较好,所以也验证了本问题中碎纸片拼接复原模型可行性。

其他组做相同处理,这样可得到拼接好的11横行的碎纸条,对11横行的碎纸条的长边进行边缘匹配,建立新的边缘匹配矩阵,结果如表3。

以上做出的表格把一些横行碎纸片拼接在一起,未能拼接的原因是由于拼接后的横行碎纸片两端都存在白边,计算机无法做出顺序的判断,所以我们要根据文字内容、规格、形式等因素人工将它们结合起来,人机结合后的原文件以表4。

观察发现拼接复原后结果较好。

4.2. 英文碎纸片复原的模型建立与求解

搜索每一张碎纸片转化后的0-1矩阵Ci的每一行,若存在黑色像素数量大于等于13即矩阵该行中数值1的数量大于等于13,则将该行全部赋值为1,若这一行黑色像素数量小于13,则将该行全部赋值为0,这样将209张碎纸片做出新的二值化矩阵Ei,之后同4.1的求解过程做边缘匹配,做出矩阵大小为

209

×

209 边缘匹配度矩阵D(由于矩阵太大,在论文中不做出),

d3068b3ae5bc63fc03b4cf272fefdf80.png

Figure 8. The second set of results after splicing human intervention

图8. 人工干预后第二组拼接结果

元素

D

i

j 为处理后的碎纸片边缘二值化矩阵i的第二列与处理后的碎纸片边缘二值化矩阵j第一列的边缘匹配度,匹配度高则说明碎纸片的文字信息处于同一水平位置。同样在矩阵D中每一行选取匹配度大于0.9的元素,进行统计分组。

在这里需要强调的是,若分完组后的组内元素进行4.1中的边缘匹配进行残片复原,小组成员发现结果十分的不理想,任举一例,见图9。

根据图9可以发现对于本文中的英文残纸片的文字信息主要内容处于相同水平位置,文字信息处于同一水平位置,结合4.1可以认为首先判断文字信息未知的方法是正确的。但是组内英文碎纸片的拼接复原程度结果差,图中部分碎纸片得到了复原,而大部分却进行了错误的拼接。对比4.1的中文复原结果,可以认为英文相对中文会有一定的特殊性。

分析产生问题的原因,由于碎纸片的连接是按照组内图片两两边缘匹配的大小来决定的,发生如图的情况说明:实际的对应的碎纸片的边缘匹配度一般在0.9以上,英文碎纸片实际对应的碎纸片的边缘匹配度会出现比其他碎纸片的边缘匹配对小的情况。面对这种问题,我们需要对检测边缘匹配度的程序的过程进行人工干预,方法为:其他图片对当前图片的边缘匹配度若出现两个及两个以上大于0.9的匹配度,则进行人工干预,根据文章的内容、格式等进行人工拼接复原,其他步骤同4.1。对于本文中对于英文碎纸片的拼接复原问题可用图10的流程图表示。

通过上述步骤可一把相同行的纸片先拼接好,得到新的11张横行碎纸片,这里拼接11张碎纸片的方法同4.1,不再重述,得到的结果见表5。

4.3. 实现算法

索贝尔算子(Sobel operator)是图像处理中的算子之一,主要用作边缘检测。在技术上,它是一离散性差分算子,用来运算图像亮度函数的梯度之近似值。在图像的任何一点使用此算子,将会产生对应的梯度矢量或是其法矢量。

44ff6901df27d6c3ba0a51ed127d4f25.png

Table 3. Long-edge stitching result of shredded paper

表3. 碎纸条的长边拼接结果

44ff6901df27d6c3ba0a51ed127d4f25.png

Table 4. The recovery results of Annex 3

表4. 附件3的复原结果

57aa803e50dfffd3b5e08e6711ca4302.png

Figure 9. Part of the mosaic picture of the results of the English group after completion

图9. 英文图片分完组后的部分拼接结果

该算子包含两组3 × 3的矩阵,分别为横向及纵向,将之与图像作平面卷积,即可分别得出横向及纵

向的亮度差分近似值。如果以A代表原始图像,Gx及Gy分别代表经横向及纵向边缘检测的图像,其公式如下:

G

x

=

(

1

0

+

1

2

0

+

2

1

0

+

1

)

A

G

y

=

(

+

1

+

2

+

1

0

0

0

1

2

1

)

A

cf4c54f06e4add21d99f8bae5c4efa93.png

Figure 10. The flow chart

图10. 流程图

44ff6901df27d6c3ba0a51ed127d4f25.png

Table 5. The recovery results of Annex 4

表5. 附件4的复原结果

图像的每一个像素的横向及纵向梯度近似值可用以下的公式结合,来计算梯度的大小。

G

=

G

x

2

+

G

y

2

然后可用以下公式计算梯度方向

Θ

=

arctan

(

G

y

G

x

)

在以上例子中,如果以上的角度Θ等于零,即代表图像该处拥有纵向边缘,左方较右方暗。在边沿检测中,常用的一种模板是Sobel算子。Sobel算子有两个,一个是检测水平边沿的;另一个是检测垂直平边

沿的。Sobel算子对于象素的位置的影响做了加权,因此效果更好。Sobel算子另一种形式是各向同性Sobel(Isotropic Sobel)算子,也有两个,一个是检测水平边沿的,另一个是检测垂直平边沿的。各向同性Sobel算子和普通Sobel算子相比,它的位置加权系数更为准确,在检测不同方向的边沿时梯度的幅度一致。

4.4. 聚类精度和算法时间复杂度分析

1) 聚类精度分析

传统的k-means算法,所求的解往往是局部最优解,使用k-means算法在一定程度上减少了局部最优可能性,但从聚类过程看,求的解也往往是局部最优解,本文提出的调整簇阀值的加速算法,由于采用了近似的k-means算法,导致该算法只能找到局部近似解。适当地设置阀值,也能得到和k-means算法相当的聚类精度。

2) 时间复杂度分析

传统k-means算法的时间复杂度为

O

(

n

k

d

t

) ,其中,n为样本个数,k为簇数目,d为数据维数,t为迭代次数。

5. 模型的评价与推广

5.1. 模型的优点

通过对复原后图片验证结果认为碎纸片复原拼接模型对于本问题有很高的可行性。对于中、英文两种情况,发现了中文需要人工干预较少,英文人工干预较多的规律,说明不同语言有各自的特性,中文到英文由于难度的增加依次将模型进行改进,给出了严谨的说明过程,模型对该类问题有很好的可用性。

5.2. 模型的缺点

本模型仅适合规则碎纸片黑白信息的复原问题,不能解决不规则碎纸片的复原与非黑白信息的复原。人工干预占总过程时间的比例相对较高(35%),对于数据量大的碎纸片复原问题,人工干预可能会花掉大部分时间。

5.3. 模型的推广

该模型适用于规则碎纸片的拼接复原问题。本模型给出了中英文碎片处理的算法,根据复原结果,可认为本论文中的模型很好的适用于该类问题的解决。对于一些不熟悉的语言和符号信息,碎纸片的倒置情况未知,需要先对倒置情况进行判断,再进行类似的算法进行图片复原处理问题。

对于规则残片,如考古挖出的规则的文物、规则的钞票残片等残片复原问题,只需将它们用照片照好转化为灰度矩阵,对颜色进行一定的处理后借鉴本模型方法进行复原。

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

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

相关文章

VC++编译MPIR 2.7.0

目录 第1章编译 2 1.1 简介 2 1.2 下载 3 1.3 解决方案 4 1.4 创建项目 5 1.5 复制文件树 6 1.6 不使用预编译头文件 8 1.7 包含目录 9 1.8 定义宏 10 1.9 编译前事件 11 1.10 修改 obj 的位置 13 1.11 编译yasm 14 1.12 编译汇编代码 …

导弹拦截

链接 分析:经典DP题,最长不下降子序列的变种,同时需要记录路径,用pre[]数组记录当前结点的前一个结点的方法很妙 1 #include "iostream"2 #include "cstdio"3 #include "cstring"4 #include "…

Spring中的@Cacheable开销

Spring 3.1引入了很棒的缓存抽象层 。 最后,我们可以放弃所有本地化的方面,装饰器和污染我们与缓存相关的业务逻辑的代码。 从那时起,我们可以简单地注释重量级方法,并让Spring和AOP机械完成工作: Cacheable("bo…

电工接线模拟仿真软件_VERICUT数控加工仿真软件,最强的数控加工模拟软件,你知道么?...

VERICUT数控加工仿真软件,最强的数控加工模拟软件VERICUT软件及功能简介1、VERICUT软件简介VERICUT是美国CGTech公司开发一款专业的数控加工仿真软件,是当前全球数控加工程序验证、机床模拟、工艺程序优化软件领域的领导者。该软件自1988年开始推向市场以来&#xf…

php数据库创建文件失败怎么回事,安装zblogPHP提示“创建c_option.php失败”解决方法...

有zblog用户反应在安装zblog的最后一步时提示“创建c_option.php失败”,如下图:本文来说明下这个问题的原因和解决办法。问题产生的原因:c_option.php是zblog的数据库配置文件,当安装完成的时候程序会自动创建这个文件。如果你的主…

CSS Variables

CSS原生变量(CSS自定义属性) 示例地址:https://github.com/ccyinghua/Css-Variables 一、css原生变量的基础用法 变量声明使用两根连词线"--"表示变量,"$color"是属于Sass的语法,"color"是属于Less的语法&a…

【基础中的基础】引用类型和值类型,以及引用传递和值传递

一直在博客园怼人,非常惭愧。所以郑重决定: 好好写一篇干货,然后再接着怼人。 这是一起帮上陈百万同学的求助,讲了一会之后,我觉得很有些普世价值,干脆就发到园子来。面向小白,高手轻拍。 我们从…

Java 7:使用NIO.2进行文件过滤–第3部分

大家好。 这是使用NIO.2系列进行文件过滤的第3部分。 对于那些尚未阅读第1 部分或第2部分的人 ,这里有个回顾。 NIO.2是自Java 7起JDK中包含的用于I / O操作的新API。使用此新API,您可以执行与java.io相同的操作,以及许多出色的功能&#xf…

Hadoop Serialization -- hadoop序列化具体解释 (2)【Text,BytesWritable,NullWritable】

回想:回想序列化,事实上原书的结构非常清晰,我截图给出书中的章节结构:序列化最基本的,最底层的是实现writable接口,wiritable规定读和写的游戏规则 (void write(DataOutput out) throws IOExce…

我需要多少个线程?

这取决于您的应用程序。 但是对于那些希望对如何从生产站点购买的所有昂贵内核中挤出更多资金的人来说,请多多包涵,我将阐明围绕多线程 Java应用程序的奥秘。 内容针对最典型的Java EE应用程序进行了“优化”,该应用程序具有Web前端&#xff…

H5网页适配 iPhoneX,就是这么简单

iPhoneX 取消了物理按键,改成底部小黑条,这一改动导致网页出现了比较尴尬的屏幕适配问题。对于网页而言,顶部(刘海部位)的适配问题浏览器已经做了处理,所以我们只需要关注底部与小黑条的适配问题即可&#…

数字校园-云资源平台 2014.10.26-人人通共享空间

近期,教育部在统计学校信息化建设情况,当中一项重要内容,作为三通两平台的一个环节,就是学校开通人人通空间的情况,网上普及了一下知识,不就是十多年前就玩的学校博客的变种吗,网上有一些产品,也是没有热闹起来,为要求而要求的多,既然要求,就来一个吧,花了几天时间,也做了一个.…

Lucene –快速添加索引和搜索功能

什么是Lucene? Apache LuceneTM是完全用Java编写的高性能,功能齐全的文本搜索引擎库。 它是一项适用于几乎所有需要全文搜索的应用程序的技术,尤其是跨平台的应用程序。 Lucene可以纯文本,整数,索引PDF,Of…

《深入理解Java虚拟机》读书笔记3--垃圾回收算法

转载:http://blog.csdn.net/tjiyu/article/details/53983064 下面先来了解Java虚拟机垃圾回收的几种常见算法:标记-清除算法、复制算法、标记-整理算法、分代收集算法、火车算法,介绍它们的算法思路,有什么优点和缺点,…

Flex布局(一)flex-direction

采用Flex布局的元素,被称为Flex容器(flex container),简称"容器"。其所有子元素自动成为容器成员,成为Flex项目(Flex item),简称"项目" Flex-direction调整主轴方向(默认为水平方向)包…

登录网页后要弹出一个新标签_连永久链接都不会,还做什么新媒体?

上次给主编大大发的预览链接失效了,被骂得狗血淋头。大部分运营人可能都遇到过这种情况,忽视了预览生成的链接只是临时的,在12小时后或超过500阅读量后就会失效。一个疏忽,给自己带来了不必要的麻烦,耽误工作&#xff…

static_cast与dynamic_cast转换

static_cast与dynamic_cast转换   一 C语言中存在着两种类型转换: 隐式转换和显式转换 隐式转换:不同数据类型之间赋值和运算,函数调用传递参数……编译器完成 char ch;int i ch; 显示转换:在类型前增加 :&#xff…

vue使用iview Timeline 时间轴不显示问题

vue Timeline 时间轴不显示渲染的效果 官网代码 <Timeline pending><TimelineItem>发布1.0版本</TimelineItem><TimelineItem>发布2.0版本</TimelineItem><TimelineItem>发布3.0版本</TimelineItem><TimelineItem><a href…

Java EE 6 Web配置文件。 在云上。 简单。

Java SE还可以。 Java EE是邪恶的。 这就是我一直想的。 好吧&#xff0c;现在不再了。 让我分享我的经验。 几周前&#xff0c;我开始考虑将旧版spring hibernate tomcat应用程序移植到新平台上&#xff1a; SAP NetWeaver云 。 我知道您在极客那里的想法&#xff1a;…

Kubernetes核心概念总结

1、基础架构 1.1 Master Master节点上面主要由四个模块组成&#xff1a;APIServer、scheduler、controller manager、etcd。 APIServer。APIServer负责对外提供RESTful的Kubernetes API服务&#xff0c;它是系统管理指令的统一入口&#xff0c;任何对资源进行增删改查的操作都要…