- 点云边缘提取及可视化
Alan Lan
PCL
点云素材:bunny.txt#include#include#includevoidCreateCloudFromTxt(conststd::string&file_path,pcl::PointCloud::Ptrcloud){std::ifstreamfin(file_path.c_str());std::stringline;pcl::PointXYZpoint;while(getline(
- C++ 实现 ROS 2 点云欧几里得聚类
c++
C++实现ROS2点云欧几里得聚类在LivoxMid-360采集的sensor_msgs::msg::PointCloud2点云数据上进行欧几里得聚类(EuclideanClusterExtraction),具体流程如下:✅1.订阅PointCloud2并转换为pcl::PointCloud解释:sensor_msgs::msg::PointCloud2是ROS2点云消息格式,PCL不能直接处理。
- PointNet++改进策略 :模块改进 | x-Conv | PointCNN, 结合局部结构与全局排列提升模型性能
我是瓦力
PointNet++改进策略人工智能深度学习计算机视觉
目录前言PointCNN实现细节1.XXX-Conv操作输入输出步骤2.PointCNN网络架构层级卷积分类与分割任务3.数据增强4.效率优化前言这篇论文介绍了一种名为PointCNN的方法,旨在从点云(pointcloud)数据中学习特征。传统卷积神经网络(CNN)在处理规则网格数据(如图像)时非常有效,但由于点云是无序且不规则的,直接在其上应用卷积操作会导致形状信息丢失,并对点的排列顺序敏感。
- Velodyne16线激光雷达点云数据中的线束(ring)是如何分布的
壹十壹
激光雷达编辑器
将sensor_msgs::PointCloud2转为pcl::PointCloud后的点云数据线束(ring)是从下往上进行递增排序。在下图中线束0为深蓝色,线束1是红色,线束2为淡蓝色,线束3为橘黄色,线束4为绿色,线束6为黄色。(一帧激光雷达点云的强度值在RVIZ中显示的颜色与该帧点云数据中激光雷达强度值的最大值有关)
- rosbag提取图片和点云文件
对方正在输入%……
ubuntulinuxpython
目录1、提取点云文件(1)准备工作(2)查看topic(3)提取点云2、提取图片文件(1)准备工作(2)查看topic(3)提取图片1、提取点云文件(1)准备工作打开终端1,启动rosroscore(2)查看topic打开终端2,查询rosbag中的topicrosbaginfo查询结果如下图topic后的信息为录制时的topic,我们现在要提取点云文件,所以需要使用/pointcloud(3)提
- pcl::transformPointCloud()用法及注意事项
NOAHCHAN1987
PCLc++PCL
函数用法#includepcl::transformPointCloud(constpcl::PointCloud&cloud_in,pcl::PointCloud&cloud_out,constEigen::Matrix4f&transform)其中cloud_in,cloud_out的类型为pcl::PointCloud::Ptr或pcl::PointCloud::Ptr等点云类型。trans
- PCL 点云视窗类CloudViewer
LeonDL168
PCL算法计算机视觉人工智能视觉检测图像处理
点云视窗类CloudViewer是简单显示点云的可视化工具类,可以让用户用尽可能少的代码查看点云。注意:点云视窗类不能应用于多线程应用程序中。简单点云可视化如果用户想用几行代码可视化程序中所对应的地物,可以使用下面的代码:#include//...voidfoo(){pcl::PointCloud::Ptrcloud;//...为cloud添加对应的场景pcl::visualization::Cl
- Livox_Mid360+IMU仿真搭建
夜雨拾年
无人机
前言本文是对在gazebo里搭建一个livoxmid360+惯导仿真平台测试FAST-LIO2的实现,此博文中存在部分需要修改代码的地方,因此在本文中做出更详细的说明。资源包安装注:由于livox点云的格式是CustomMsg,而rviz中主要使用PointCloud和PointCloud2,转换不太方便,因此不使用官方提供的软件包,使用他人修改后的软件包。但此软件包开发时间较早,缺少mid360
- matlab计算对比两个点云的高程差
不勤劳的码字员
matlab点云数据处理matlab点云距离高程差
通常需要计算两个点云的高程差值代码如下假设pointCloud1和pointCloud2是两个点云数据的矩阵%每行代表一个点,列分别是x,y,z坐标%对齐点云[tform,~,pointCloud1Reg]=pcregistericp(pointCloud1,pointCloud2);%计算重叠区域%假设通过一定的距离阈值来提取重叠区域distanceThreshold=0.1;%可以根据需要调整
- iss关键点检测以及SAC-IA粗配准
jjm2002
点云配准C++算法c++关键点提取点云配准
一、iss关键点检测C++#include#include#include#include#include#include#include#include#includeusingnamespacestd;intmain(int,char**argv){pcl::PointCloud::Ptrcloud(newpcl::PointCloud);//要配准变化的点云pcl::PointCloud::
- c++下使用Open3D进行DBSCAN聚类
Patient patient.
聚类c++DBSCANOpen3d
c++下使用Open3D进行DBSCAN聚类#include#include#includeusingnamespaceopen3d;usingnamespacestd;intmain(intargc,char*argv[]){//读取点云std::shared_ptrcloud(newgeometry::PointCloud);open3d::io::ReadPointCloud("C:/Use
- PCL点云——点云基本知识(一)
钟某某人
算法c++3d
文章目录@[TOC](文章目录)一、点云输入/输出(I/O)1.1点云文件格式1.1.1PCD1.1.2LSA1.1.3PLY1.2序列化与反序列化1.2.1反序列化1.2.2序列化二、点云及其可视化2.1概述2.2PCL-Demo2.3PCL-数据结构PointCloud2.3.1基本类型PointCloud2.3.2衍生类型2.4PCL-常见处理2.4.1可视化Visualization2.4
- sensor_msgs::PointCloud2 与sensor_msgs::PointCloud的区别
sugarkss
计算机视觉
sensor_msgs::PointCloud2和sensor_msgs::PointCloud都是ROS(RobotOperatingSystem)中用于处理点云数据的消息类型,但它们在数据结构和用途上有一些重要的区别。数据结构:sensor_msgs::PointCloud:这是一个较早的点云数据类型。它直接包含了一个geometry_msgs::Point32[]points数组,每个元素表
- PCL使用SAC-IA \ICP\NDT\GICP进行点云配准
jjm2002
点云配准C++点云c++
一、SAC-IA示例:#include#include#include#include#include//定义点云类型typedefpcl::PointCloudPointCloud;typedefpcl::PointCloudNormalCloud;typedefpcl::PointCloudFeatureCloud;//读取或创建点云(PointCloud::Ptrsource_cloud,t
- PCL RadiusOutlierRemoval 半径滤波器
Σίσυφος1900
PCL算法pcl
一、原理对整个输入迭代一次,对于每个点进行半径R邻域搜索,如果邻域点的个数低于某一阈值,则该点将被视为噪声点并被移除。二、点云整体代码:intmain(){pcl::PointCloud::Ptrcloud(newpcl::PointCloud);//待滤波点云pcl::PointCloud::Ptrcloud_filtered(newpcl::PointCloud);//滤波后点云///读入点云
- PCL库-直通滤波器
usernamezzz
pclc++
一直通滤波器直通滤波器:对指定维度(X,Y,Z,BGR等)进行某一个范围滤波,可以删除这个范围内部点,也可以删除这个范围外部的点二关键函数1)实例化:pcl::PassThroughpcl::PointXYZpass;//实例化直通滤波器2)载入点云pcl::PassThroughpcl::PointXYZ::setInputCloud(pcl::PointCloud::Ptr)3)设置滤波方向p
- 【点云处理技术之PCL】滤波器——直通滤波器(pcl::PassThrough)
非晚非晚
PCL点云处理pcl直通滤波器滤波器
直通滤波器,是直接根据滤波器设定的条件,选择自己所需点云。可以选择保留设定范围内的点云,也可以选择滤除设定范围内的点云,保留或者滤出是由setFilterLimitsNegative进行模式开关的。代码中,设定z轴的条件,保留z方向范围[0,1]内的点。#include#include#includeintmain(intargc,char**argv){pcl::PointCloud::Ptrc
- (三)ros 点云格式转PCL点云格式
DSZS123
机器人rospcl机器人
(1)sensor_msgs::PointCloud2是ROS点云数据rosmsgshowsensor_msgs/PointCloud2显示std_msgs/Headerheaderuint32seqtimestampstringframe_iduint32heightuint32widthsensor_msgs/PointField[]fieldsuint8INT8=1uint8UINT8=2u
- 使用pcl::fromROSMsg()函数报错Failed to find match for field ‘intensity‘
少年独剑倚清秋
LGSVL无人驾驶PCL自动驾驶
使用LGSVL创建了激光雷达传感器,其中的原始点云PointCloud2类型的话题中含有intensity数据,并且在Rviz中可以将强度信息显示出来。使用pcl::fromROSMsg()函数将ROS的PointCloud2类型的消息转成pcl::PointXYZI类型的数据后,出现了Failedtofindmatchforfield‘intensity’的问题。但是,在现实中使用pcl::fr
- ROS接收点云过程中出现Failed to find match for field ‘rgb‘.
希望coding不秃头
ROS计算机视觉人工智能
标记一下自己的低级错误,最近想做给点云上色,在ROS回调函数接收处理时总会报错说Failedtofindmatchforfield'rgb'.最后发现问题并不在回调上色输出端,是因为雷达发出的点云并不包含RGB信息。voidPointHandle(constsensor_msgs::PointCloud2ConstPtr&laserCloud)//由于雷达点云没有RGB出现问题。pcl::Poin
- 【点云学习】pcl中PointCloud和PointCloud::Ptr的复制与函数传参
larry_dongy
PCL点云处理点云处理
本文用于记录在使用PointCloud和PointCloud::Ptr时,等号复制、函数传参以及copyPointCloud复制,这几种方法复制后,旧的变量修改是否会影响所复制的变量。仅用于记录,不保证准确。【转载请注明出处】1.函数调用测试了四种函数参数,分别是Ptr类型,PointCloud类型,PointCloud的引用,以及const引用:voidfunc_ptr(MyPointCloud
- ICP(迭代最近点)迭代过程的单步可视化程序
Smile Hun
c++PCLICP
ICP(迭代最近点)迭代过程的单步可视化程序注:本系列所有文章在github开源,也是我个人的学习笔记,欢迎大家去star以及fork,感谢!仓库地址:pointcloud-processing-visualization一个逐次迭代点云的程序,可以逐步显示icp迭代的过程,观察到点云逐步靠近的过程.其中红色点云为target点云,蓝色点云为带先验位姿的source点云,绿色为无先验位姿的sour
- SAICP(模拟退火迭代最近点)的实现
Smile Hun
点云学习c++PCL模拟退火算法ICP
SAICP(模拟退火迭代最近点)的实现注:本系列所有文章在github开源,也是我个人的学习笔记,欢迎大家去star以及fork,感谢!仓库地址:pointcloud-processing-visualization总结一下上周的学习情况ICP会存在局部最小值的问题,这个问题可能即使是没有实际遇到过,也或多或少会在各种点云匹配算法相关博客中看到,于是我去查了一些资料,发现可以通过模拟退火算法解决,
- open3d 和numpy 交互
curry dog
3d交互mesh
open3d和numpynumpy转open3D需要借助Vector3dVector函数,这样可以直接赋值与open3d.PointCloud.points,具体操作如下,假设xyz、nxnynz、rgb分别是一个n*3numpy数组,则对于点数,法向量和颜色的转换都可以借助Vector3dVector函数,具体操作如下:importnumpyasnpimportopen3Daso3dpcd=o3
- 基于PCL库的点云坐标系转换
凌晨一点二十
激光雷达PCL点云库pclc++
实验结果对一个轴坐标进行调整代码实现的功能读取文件数据将采集的激光雷达数据进行转换,也可以将某一区域的点云进行筛选,然后对此区域的点云坐标转换,如y轴坐标加某一个数值,x坐标加减某一个数值保存更改改变坐标之后的文件数据代码示例#include#include#include//头文件定义intmain(intargc,char**argv){pcl::PointCloud::Ptrcloud(ne
- 【PCL】Failed to find match for field 'label'
North槛内人
PCLPCL
本人尝试用以下代码从.pcd文件中读取点云数据:PCLPointCloud2cloud_blob;PointCloud::Ptrcloud(newPointCloud());Eigen::Vector4forigen;Eigen::Quaternionforientation;if(pcl::io::loadPCDFile(filename,cloud_blob,origen,orientatio
- module ‘open3d‘ has no attribute ‘PointCloud‘
AI视觉网奇
3D视觉
module'open3d'hasnoattribute'PointCloud'新版open3dopen3d-0.13.0api好多都改了,open3d.PointCloud()新apipc=open3d.geometry.PointCloud()Vector3dVector新api:pc.points=open3d.utility.Vector3dVector(pc_xyzrgb[:,0:3])
- 论文阅读——UniRepLKNet
じんじん
论文人工智能
UniRepLKNet:AUniversalPerceptionLarge-KernelConvNetforAudio,Video,PointCloud,Time-SeriesandImageRecognition当我们将一个3×3的conv添加到一个小卷积核ConvNet中时,我们预计它会同时产生三种效果——1)使感受野更大,2)增加空间模式的抽象层次(例如,从角度和纹理到对象的形状),3)通过
- 第七周笔记
鲸落南北c
本周任务使用KinectDK跑通ORB_SLAM2_with_pointcloud,实时获取点云文件使用KinectDK采集数据,制作类似TUM数据集遇到的问题1.可以获取特征点,但是得不到点云数据。问题原因:yaml参数错误,缺少点云相关数据。注:yaml参数是相机的参数,相机的参数从Kinect发布的消息中获取,在启动Kinect节点的时候可以获取到相关话题的相机参数,由于是使用深度相机对齐R
- 《PCL多线程加速处理》-滤波-统计滤波
小修勾
点云算法处理pclc++算法
《PCL多线程加速处理》-滤波-统计滤波一、效果展示二、实现方式三、代码一、效果展示提升速度随着点云越多效果越明显二、实现方式1、原始的统计滤波实现方式#includepcl::PointCloud<pcl::PointXYZ
- 二分查找排序算法
周凡杨
java二分查找排序算法折半
一:概念 二分查找又称
折半查找(
折半搜索/
二分搜索),优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而 查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表 分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步
- java中的BigDecimal
bijian1013
javaBigDecimal
在项目开发过程中出现精度丢失问题,查资料用BigDecimal解决,并发现如下这篇BigDecimal的解决问题的思路和方法很值得学习,特转载。
原文地址:http://blog.csdn.net/ugg/article/de
- Shell echo命令详解
daizj
echoshell
Shell echo命令
Shell 的 echo 指令与 PHP 的 echo 指令类似,都是用于字符串的输出。命令格式:
echo string
您可以使用echo实现更复杂的输出格式控制。 1.显示普通字符串:
echo "It is a test"
这里的双引号完全可以省略,以下命令与上面实例效果一致:
echo Itis a test 2.显示转义
- Oracle DBA 简单操作
周凡杨
oracle dba sql
--执行次数多的SQL
select sql_text,executions from (
select sql_text,executions from v$sqlarea order by executions desc
) where rownum<81;
&nb
- 画图重绘
朱辉辉33
游戏
我第一次接触重绘是编写五子棋小游戏的时候,因为游戏里的棋盘是用线绘制的,而这些东西并不在系统自带的重绘里,所以在移动窗体时,棋盘并不会重绘出来。所以我们要重写系统的重绘方法。
在重写系统重绘方法时,我们要注意一定要调用父类的重绘方法,即加上super.paint(g),因为如果不调用父类的重绘方式,重写后会把父类的重绘覆盖掉,而父类的重绘方法是绘制画布,这样就导致我们
- 线程之初体验
西蜀石兰
线程
一直觉得多线程是学Java的一个分水岭,懂多线程才算入门。
之前看《编程思想》的多线程章节,看的云里雾里,知道线程类有哪几个方法,却依旧不知道线程到底是什么?书上都写线程是进程的模块,共享线程的资源,可是这跟多线程编程有毛线的关系,呜呜。。。
线程其实也是用户自定义的任务,不要过多的强调线程的属性,而忽略了线程最基本的属性。
你可以在线程类的run()方法中定义自己的任务,就跟正常的Ja
- linux集群互相免登陆配置
林鹤霄
linux
配置ssh免登陆
1、生成秘钥和公钥 ssh-keygen -t rsa
2、提示让你输入,什么都不输,三次回车之后会在~下面的.ssh文件夹中多出两个文件id_rsa 和 id_rsa.pub
其中id_rsa为秘钥,id_rsa.pub为公钥,使用公钥加密的数据只有私钥才能对这些数据解密 c
- mysql : Lock wait timeout exceeded; try restarting transaction
aigo
mysql
原文:http://www.cnblogs.com/freeliver54/archive/2010/09/30/1839042.html
原因是你使用的InnoDB 表类型的时候,
默认参数:innodb_lock_wait_timeout设置锁等待的时间是50s,
因为有的锁等待超过了这个时间,所以抱错.
你可以把这个时间加长,或者优化存储
- Socket编程 基本的聊天实现。
alleni123
socket
public class Server
{
//用来存储所有连接上来的客户
private List<ServerThread> clients;
public static void main(String[] args)
{
Server s = new Server();
s.startServer(9988);
}
publi
- 多线程监听器事件模式(一个简单的例子)
百合不是茶
线程监听模式
多线程的事件监听器模式
监听器时间模式经常与多线程使用,在多线程中如何知道我的线程正在执行那什么内容,可以通过时间监听器模式得到
创建多线程的事件监听器模式 思路:
1, 创建线程并启动,在创建线程的位置设置一个标记
2,创建队
- spring InitializingBean接口
bijian1013
javaspring
spring的事务的TransactionTemplate,其源码如下:
public class TransactionTemplate extends DefaultTransactionDefinition implements TransactionOperations, InitializingBean{
...
}
TransactionTemplate继承了DefaultT
- Oracle中询表的权限被授予给了哪些用户
bijian1013
oracle数据库权限
Oracle查询表将权限赋给了哪些用户的SQL,以备查用。
select t.table_name as "表名",
t.grantee as "被授权的属组",
t.owner as "对象所在的属组"
- 【Struts2五】Struts2 参数传值
bit1129
struts2
Struts2中参数传值的3种情况
1.请求参数绑定到Action的实例字段上
2.Action将值传递到转发的视图上
3.Action将值传递到重定向的视图上
一、请求参数绑定到Action的实例字段上以及Action将值传递到转发的视图上
Struts可以自动将请求URL中的请求参数或者表单提交的参数绑定到Action定义的实例字段上,绑定的规则使用ognl表达式语言
- 【Kafka十四】关于auto.offset.reset[Q/A]
bit1129
kafka
I got serveral questions about auto.offset.reset. This configuration parameter governs how consumer read the message from Kafka when there is no initial offset in ZooKeeper or
- nginx gzip压缩配置
ronin47
nginx gzip 压缩范例
nginx gzip压缩配置 更多
0
nginx
gzip
配置
随着nginx的发展,越来越多的网站使用nginx,因此nginx的优化变得越来越重要,今天我们来看看nginx的gzip压缩到底是怎么压缩的呢?
gzip(GNU-ZIP)是一种压缩技术。经过gzip压缩后页面大小可以变为原来的30%甚至更小,这样,用
- java-13.输入一个单向链表,输出该链表中倒数第 k 个节点
bylijinnan
java
two cursors.
Make the first cursor go K steps first.
/*
* 第 13 题:题目:输入一个单向链表,输出该链表中倒数第 k 个节点
*/
public void displayKthItemsBackWard(ListNode head,int k){
ListNode p1=head,p2=head;
- Spring源码学习-JdbcTemplate queryForObject
bylijinnan
javaspring
JdbcTemplate中有两个可能会混淆的queryForObject方法:
1.
Object queryForObject(String sql, Object[] args, Class requiredType)
2.
Object queryForObject(String sql, Object[] args, RowMapper rowMapper)
第1个方法是只查
- [冰川时代]在冰川时代,我们需要什么样的技术?
comsci
技术
看美国那边的气候情况....我有个感觉...是不是要进入小冰期了?
那么在小冰期里面...我们的户外活动肯定会出现很多问题...在室内呆着的情况会非常多...怎么在室内呆着而不发闷...怎么用最低的电力保证室内的温度.....这都需要技术手段...
&nb
- js 获取浏览器型号
cuityang
js浏览器
根据浏览器获取iphone和apk的下载地址
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" content="text/html"/>
<meta name=
- C# socks5详解 转
dalan_123
socketC#
http://www.cnblogs.com/zhujiechang/archive/2008/10/21/1316308.html 这里主要讲的是用.NET实现基于Socket5下面的代理协议进行客户端的通讯,Socket4的实现是类似的,注意的事,这里不是讲用C#实现一个代理服务器,因为实现一个代理服务器需要实现很多协议,头大,而且现在市面上有很多现成的代理服务器用,性能又好,
- 运维 Centos问题汇总
dcj3sjt126com
云主机
一、sh 脚本不执行的原因
sh脚本不执行的原因 只有2个
1.权限不够
2.sh脚本里路径没写完整。
二、解决You have new mail in /var/spool/mail/root
修改/usr/share/logwatch/default.conf/logwatch.conf配置文件
MailTo =
MailFrom
三、查询连接数
- Yii防注入攻击笔记
dcj3sjt126com
sqlWEB安全yii
网站表单有注入漏洞须对所有用户输入的内容进行个过滤和检查,可以使用正则表达式或者直接输入字符判断,大部分是只允许输入字母和数字的,其它字符度不允许;对于内容复杂表单的内容,应该对html和script的符号进行转义替换:尤其是<,>,',"",&这几个符号 这里有个转义对照表:
http://blog.csdn.net/xinzhu1990/articl
- MongoDB简介[一]
eksliang
mongodbMongoDB简介
MongoDB简介
转载请出自出处:http://eksliang.iteye.com/blog/2173288 1.1易于使用
MongoDB是一个面向文档的数据库,而不是关系型数据库。与关系型数据库相比,面向文档的数据库不再有行的概念,取而代之的是更为灵活的“文档”模型。
另外,不
- zookeeper windows 入门安装和测试
greemranqq
zookeeper安装分布式
一、序言
以下是我对zookeeper 的一些理解: zookeeper 作为一个服务注册信息存储的管理工具,好吧,这样说得很抽象,我们举个“栗子”。
栗子1号:
假设我是一家KTV的老板,我同时拥有5家KTV,我肯定得时刻监视
- Spring之使用事务缘由(2-注解实现)
ihuning
spring
Spring事务注解实现
1. 依赖包:
1.1 spring包:
spring-beans-4.0.0.RELEASE.jar
spring-context-4.0.0.
- iOS App Launch Option
啸笑天
option
iOS 程序启动时总会调用application:didFinishLaunchingWithOptions:,其中第二个参数launchOptions为NSDictionary类型的对象,里面存储有此程序启动的原因。
launchOptions中的可能键值见UIApplication Class Reference的Launch Options Keys节 。
1、若用户直接
- jdk与jre的区别(_)
macroli
javajvmjdk
简单的说JDK是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境。SDK是Software Development Kit 一般指软件开发包,可以包括函数库、编译程序等。
JDK就是Java Development Kit JRE是Java Runtime Enviroment是指Java的运行环境,是面向Java程序的使用者,而不是开发者。 如果安装了JDK,会发同你
- Updates were rejected because the tip of your current branch is behind
qiaolevip
学习永无止境每天进步一点点众观千象git
$ git push joe prod-2295-1
To
[email protected]:joe.le/dr-frontend.git
! [rejected] prod-2295-1 -> prod-2295-1 (non-fast-forward)
error: failed to push some refs to '
[email protected]
- [一起学Hive]之十四-Hive的元数据表结构详解
superlxw1234
hivehive元数据结构
关键字:Hive元数据、Hive元数据表结构
之前在 “[一起学Hive]之一–Hive概述,Hive是什么”中介绍过,Hive自己维护了一套元数据,用户通过HQL查询时候,Hive首先需要结合元数据,将HQL翻译成MapReduce去执行。
本文介绍一下Hive元数据中重要的一些表结构及用途,以Hive0.13为例。
文章最后面,会以一个示例来全面了解一下,
- Spring 3.2.14,4.1.7,4.2.RC2发布
wiselyman
Spring 3
Spring 3.2.14、4.1.7及4.2.RC2于6月30日发布。
其中Spring 3.2.1是一个维护版本(维护周期到2016-12-31截止),后续会继续根据需求和bug发布维护版本。此时,Spring官方强烈建议升级Spring框架至4.1.7 或者将要发布的4.2 。
其中Spring 4.1.7主要包含这些更新内容。