1.3D打印需要用到什么软件
2.VINS-Mono:原理深剖+白板从零手推公式+源码逐行精讲!工程p工
3.图像处理(十一)exposure fusion 图像曝光融合
4.Java学习资源
5.FusionForge简介
3D打印需要用到什么软件
3D打印需要用到什么软件?
每一个伟大的源码3D打印作品背后都有一个伟大的创造者,而3D建模软件就是程源创造者的“武器”和“最强助攻”。如何选择得心应手的码下3D建模软件?我列出了前名的建模软件及其介绍,供您参考:
入门级3D建模软件:
1. TinkerCAD
2. 3DSlash
3. 3DTin
4. D Design
5. Sculptris
6. MeshMixer
中级到高级的工程p工3D建模软件:
7. SketchUp
8. FreeCAD
9. Blender
. OpenSCAD
. Onshape
. Inventor
. Rhinoceros
. Grasshopper
. SolidWorks
. Cinema 4D
. MAYA
. ZBrush
. 3ds Max
. Fusion
. LightWave 3D
. AutoCAD
. MoI3d
. MODO
. Wings3D
. Creo
. BRL-CAD
切片软件和3D打印机软件:
. Cura
. CraftWare
. Netfabb Basic
. Repetier
. Simplify3D
. Slic3r
. OctoPrint
. 3DPrinterOS
入门级建模软件:
#1: TinkerCAD
价格:免费
级别/面向人群:初学者
软件平台:基于浏览器的在线APP
类型:几何三维建模
开发商:Autodesk
欧特克的这款TinkerCAD是公认的非常适于初学者的3D建模软件之一,免费、源码deepfake 源码下载基于浏览器,程源毫不夸张地它说提供的码下是一种简单的数字积木的三维建模方式,让入门级的工程p工制造者顺利地开启3D建模第一步。更具体地说,源码在TinkerCAD上用户可以使用不同的程源三维形状,自由地调整,码下允许保存和分享在线3D文件,工程p工在需要进行3D打印的源码时候可以直接输出为.STL文件格式。
#2: 3DSlash
价格:免费
级别/面向人群:初学者
软件平台:浏览器,程源Windows,Mac,Linux,,Raspberry Pi
类型:几何三维建模
开发商:3DSlash
3DSlash对小朋友来说称得上是一个伟大的APP,或者应该说它适合于所有年龄段的人群,值得注意的是这个软件的UX界面——让你建模过程中感觉就像置身于Minecraft游戏当中,它提供了大量的工具,像凿子和锤子,可以用来雕刻一些系统已经提供的简单的3D模型块,不需要你再从头建立模型。这种方法对于初学者来说更直观,并且能在其中获得无穷的乐趣。最后,3D模型也可以在线分享,或者输出为.STL文件格式用来进行3D打印,3DSlash平台还提供了许多有用的3D建模教程。
#3: 3DTin
成本:免费
级别/面向人群:初学者
软件平台:基于浏览器的在线APP
类型:几何三维建模
开发商:Lagoa
3DTin简单的界面和直观的设计工具对初学者来说是一个很好的选择,它不止是一个很棒的、免费的入门级在线APP,只要用户在3DTin注册账号,就可以获得大量共享的3D模型,用户还可以将自己的模型添加到模型库中,甚至你还可以将自己的.STL模型文件传送到像i.materialise,Thingiverse,和Sculpteo等3D打印平台上,为了获得更好的建模效果,Lagoa建议在JavaScript API WebGL上运行。
#4: D Design
价格:免费
级别/面向人群:初学者
软件平台:PC,Mac 和iPad
类型:几何三维建模
开发商:Autodesk
相对于TinkerCAD来说,欧特克的D Design稍微先进一些,直观的界面可以让用户轻松从零开始建模,程序里预存了大量已经做好的模型,用户可以对它们再编辑,模型完成后轻松输出为.STL文件,还可以直接上传到Shapeways的3D打印服务中心进行打印。
#5: Sculptris
成本:免费
级别/面向人群:初级到中级
操作系统:Windows 或Mac
类型:三维数字雕刻工具
推出公司:Pixologic
这款软件是由ZBrush(一个数字雕刻和绘画软件)的开发者Pixologic提供,Sculptris是一款相对来说比较容易的数字雕刻软件,它基于粘土建模方法。如果初学者不满足于三维几何建模,Sculptris可能是带你进入数字雕刻世界最好的工具,除了建模,这款软件还允许使用者调整3D对象的网格几何体,通过“绘画模式”添加颜色和纹理。
#6: Meshmixer
成本:免费
级别/面向人群:初级到中级
操作系统:Windows 、Mac和Linux
类型:三维三角网格建模
推出公司:Autodesk
大部分的制造者对Meshmixer已经比较熟悉,因为它是最流行的.STL文件检测和修复的程序之一,允许用户预览、改善和修复3D模型,以确保正常的3D打印,同时它也是一个强大的入门级的建模工具,使用的是三角形网格。Meshmixer支持大部分的桌面3D打印机,同时也可以将模型上传到Shapeways,,Sculpteo和 i.materialise进行打印。
中级到高级的3D建模软件:
#7: SketchUp
价格:免费,SketchUp Pro为$
级别/面向人群:中级
操作系统:Windows 、源码 免费 免费 源码Mac和Linux
类型:基于直线和曲线的3D建模
开发商:Trimble
这款软件比较出彩的地方是它简单的使用界面,免费的SketchUp 3D建模软件拥有一些设计工具和插件可以制造出复杂的3D对象,它基于直线和曲线的建模系统,在建筑师和工程师中间比较受欢迎,他们可以操纵SketchUp的线和形来创建出任意数量的三维形态。如果你不是建筑师或者工程师的话,SketchUp也不会太难,这款3D软件还提供了一系列的视频教程,以及一个免费版本的程序——SketchUp Make,但这个免费版本有一个缺点,不能直接输出.STL文件,你还需要下载和安装一个附加的.STL输出模块。
# 8: FreeCAD
价格:免费
级别/面向人群:中级到高级
操作系统:Windows 、Mac和Linux
类型:参数化建模
开发商:FreeCAD社区(开源)
顾名思义,FreeCAD的确是免费的(开源代码)三维建模软件,因为这款3D打印软件使用的是参数化建模——一种基于运算法则的程序,调整的是参数而不是网格,面向的人群是像工程师、产品高级设计师这样的专业人群。这款开源软件兼容于Windows、Mac和Linux,拥有一系列广泛的专业设计工具,该软件还提供一个全面的课程,拥有一个大社区,可以帮助参数设计新手迅速上手。
# 9: Blender
价格:免费
级别/面向人群:高级
软件平台:Windows 、Mac和Linux
类型:三维数字雕刻工具
开发商:Blender基金会(开源)
Blender去年被i.materialise列为最受欢迎的3D建模和设计软件,是一款强大的开源3D数字雕刻软件,面向从初级到高级甚至是专业的客户,拥有系列广泛的工具和设计功能,这款3D设计软件不仅支持复杂的3D建模,也包括索具、动画、模拟、渲染、合成、运动跟踪甚至视频编辑和游戏开发等功能,所以想要学习这款软件的话还需要花上一定的时间,但它绝对是最深入的一款3D打印软件之一,而且还是免费的。
#: OpenSCAD
价格:免费
级别/面向人群:高级程序员
操作系统:Windows 、Mac和Linux
类型:参数化建模
参数化建模OpenSCAD和以上所列出的软件稍微不同,因为它面向的是程序员和编码人员,而不是设计师和艺术家,这就意味着OpenSCAD可能对室内装修设计来说不是一个理想的选择。它对生成机械零部件的3D模型来说是一个理想的工具,比方说,非交互式的建模基本上被当做一个“3D编译器”,从编程脚本文件生成3D模型,这允许用户精确地控制对象的参数和属性,以及简单有效地返回和编辑,OpenSCAD允许用户在完成建模以后输出.STL文件。
#: Onshape
价格: 免费;专业版本美元/月
级别/面向人群:初级到高级
软件平台:基于浏览器的在线应用;还可用于iOS和Android
类型:参数化建模
开发商:Onshape
Onshape,一个相对较新的3D打印软件,号称是“第一和唯一的全云三维CAD系统”,让设计团队可以在使用任何Web浏览器、手机或平板电脑的情况下共同合作设计。也就是说,通过软件的完全基于云平台,设计团队可以实时创建基于团队的三维模型,这是针对课堂、设计团队,甚至是专业的工程团队的理想设计。
#: Inventor
成本: 美元-美元
级别/面向人群:中级到高级
操作系统:Windows或Mac
类型:机械设计和三维计算机辅助设计
推出公司:Autodesk
Autodesk Inventor三维建模软件是一款机械设计和模拟的综合工具,并拥有简单直观的界面。软件提供了自由、直接和参数化建模的设计选择,包括先进的设计自动化工具,以及仿真和可视化工具。作为一款专业机械设计软件,源码买卖平台源码这款软件并非针对日常3D设计需要而开发,而是一款功能强大的、针对需要一定的机械性能的零件和设备的3D打印设计软件。
#: 犀牛(Rhinoceros或Rhino3D)
价格:美元-美元
级别/面向人群:中级到高级
软件平台:Windows 或 Mac
类型:三维建模NURBS
开发商:Robert McNeel
犀牛是一款基于NURBS的三维建模软件,因为其功能和用途的多样性而变得异常流行,它学起来上手很快,可广泛兼容各种文件格式。这款三维建模软件经常被工业设计师、建筑师、珠宝设计师、艺术家等用来进行快速原型设计,具有广阔的设计潜力。该软件目前的最新版本是犀牛5。
#: 蝗虫(Grasshopper)
价格:免费
级别/面向人群:中级
软件平台:Windows或Mac
类型:算法建模
开发商:David Rutten
值得一提的是其独特的算法。蝗虫的图形算法编辑器与犀牛3D建模工具能产生复杂的结构,可以称之为“生成艺术”。蝗虫的独特之处在哪里?你不必是一个编程或脚本专家来获得一些真正惊人的生成设计结果,因为该程序允许用户设计和建立复杂的基于算法的设计。
#: SolidWorks
价格:美元
级别/面向人群:中级到高级
软件平台:Windows或Mac
类型:三维机械的计算机辅助设计程序
开发商:达索系统SolidWorks公司
三维机械CAD软件SolidWorks已经存在了二十年,是公认的三维设计的主流软件,尤其是对于工程师和设计师来说。除了3D建模,SolidWorks还拥有广泛的仿真、运动和设计验证工具,以及逆向工程的能力。这是一款强大的软件,非常适合用于设计工业零部件。
#: Cinema 4D
价格:美元
级别/面向人群:专业级高端版本
软件平台:Windows / Mac
类型:3D建模、动画
开发商:Maxon
Cinema 4D是一款用于设计、动画和渲染应用程序的通用3D建模软件。 该软件主要面向创意表现,如3D图形和3D制作。 Maxon计算机软件具有多个设计选项,包括程序式建模/多边形建模、动画、照明、纹理和渲染。 它还有其他一些特色的功能,提供了一个设计3D打印对象设计的强大平台。
#: MAYA
价格:美元
级别/面向人群:中级
软件平台:Windows, Mac, Linux
类型:3D动画软件
开发商:Autodesk
可以说是现在最为流行的顶级三维动画软件。直观的设计界面,很受三维建模与设计师们的追捧。主要应用于3D动画和视觉设计,为设计3D打印模型提供了一个高效的平台,人性化的界面,一些普通设计师也可以快速上手。 MAYA还配备了雕刻工具以及索具和蒙皮工作流,用户可根据原始网格更改代理网格。
#: ZBrush
价格:美元
级别/面向人群:高级
软件平台:Windows/Mac
类型:数字雕刻软件
开发商:Pixologic
ZBrush的诞生代表了一场3D造型的革命。它在某种程度上可以说是是更高级版本的Sculptris软件,将数字雕刻提升到一个全新的水平。 该3D打印软件基本上结合了3D和2.5D建模,以及纹理和绘画,使设计师能够创建出拥有惊人细节(造型、肌理、凹凸、材质)的3D模型。使用Pixologic的专有“pixol”技术,可以给基于像素的作品增加深度、材质、光照和复杂精密的渲染特效,真正实现了 2D 与 3D 的结合。ZBrush甚至可以使用简单的3D打印导出器将3D文件导出到3D打印机。
#: 3ds Max
价格:美元
级别:高级
软件平台:Windows
类型:3D建模与渲染
开发商:Autodesk
3D Studio Max,常简称为3d Max 或3ds MAX,是Discreet公司开发的(后被Autodesk公司合并)基于PC系统的三维动画渲染和制作软件。是常用于视频游戏、**和运动图形制作的动画、模拟和渲染工具。 此外,源码狗源码网3ds Max被Autodesk称为协作软件——这款3D建模平台专门针对图形和设计专业人员进行了功能和升级。 在3D打印设计方面,3ds Max还配备了网格和表面建模,以及基于NURBS的建模和一些其他有用的功能。
#: Fusion
价格:美元/年
级别:中级-高级
软件平台:Windows/Mac云平台
类型:3D CAD/CAM设计
开发商:Autodesk
Fusion 是Autodesk推出的一款基于云端的三维可视化建模软件。将工业设计、机械设计、协作、加工等元素集成为一体。可输出.OBJ和.STL两种文件格式。该软件中比较流行的技术包括直接建模技术、T样条建模技术、基于联结的装配技术、自顶向下的参数化建模技术、云端数据管理等。对学生、发烧友、业余爱好者和初创企业免费,其他商业用途需付费使用。
#: LightWave 3D
价格:美元
级别:中级-高级
软件平台:Windows/Mac
类型:3D动画
开发商:NewTek
LightWave 3D是一款高性价比的三维动画制作软件,适用于视觉设计、动态图形、视频游戏、**制作等。操作简便,易学易用,在生物建模和角色动画方面功能异常强大,倍受影视特效制作公司和游戏开发商的青睐。可输出.OBJ、COLLADA文件格式。Shapeways等3D打印服务平台适用。
#: AutoCAD
价格:美元/年
级别:高级
软件平台:Windows/Mac
类型:平面或三维CAD绘图
开发商:Autodesk
AutoCAD(Autodesk Computer Aided Design)是Autodesk(欧特克)公司首次于年开发的自动计算机辅助设计软件,用于二维绘图、建筑绘图、电脑芯片设计和基本三维设计,现已经成为国际上广为流行的绘图工具。深受三维设计师和创客所喜爱,软件的3DPRINT程序,可以方便直接将三维模型发送给一系列3D打印服务商。年,欧特克发布了其移动App版本AutoCAD ,但目前仅支持平面CAD绘图。
#: MoI3D
价格:美元
软件平台:Windows/Mac
类型:三维建模
开发商:MoI3D
Moi3D自由设计大师:是一款面向设计师、艺术家的三维建模软件,友好的界面、强大的工具,笔记本/平板兼容,使得整个工作流程变得更加简单、快捷。得益于它的CAD工具和高级布尔函数,有了这些MOI3D就可以轻松快速的创建各种带有复杂表面、高质量多边形网格的模型。
#: MODO
价格:美元
级别:高级
软件平台:Windows、Mac、Linux
类型:多边形和细分表面建模
开发商:The Foundry
由The Foundry开发的MODO是一个集多边形和细分曲面、建模、雕刻、3D绘画、动画和渲染为一体的综合性软件,用于**和视频内容制作、产品设计等。该3D设计软件的MeshFusion布尔工具深得人心,它允许灵活创建自由形状模型以及其多功能雕刻工具。 3D模型可以作为.STL文件导出。
#: Wings3D
价格:免费
级别:高级
软件平台:Windows, Mac, Linux
类型:细分建模器
开发商: Wings3D
Wings 3D是一个开源的三维计算机图形软件。使用翼边数据库。 注重于建模,构思取与Izware的Nendo和Mirai。 使用Erlang程序语言,个性化页面,php源码商店源码3D设计工具丰富,其AutoUV工具允许用户剪切和展开3D数字模型表面,方便绘色和表面质地处理。输出格式:.OBJ。
#: Creo
价格:美元
级别:中级-高级
软件平台:Windows
类型:参数建模
开发商:PTC
Creo是美国PTC公司于年月推出CAD设计软件包,整合Pro/ENGINEER、CoCreate和ProductView三大软件并重新分发。其中Creo Parametric允许设计人员使用参数化和直接建模创建3D模型。 Creo套件中还包括模拟、草图、说明、查看等应用程序。 除了设计3D可打印模型,Creo可用于工业部件,焊接建模和结构框架设计的装配建模。 该3D打印软件可用于许多行业,包括汽车、医疗,甚至娱乐。
#: BRL-CAD
价格:免费
级别:中级-高级
软件平台:Windows, Mac, Linux, BSD, Solaris
类型:CSG实体建模
开发商:BRL-CAD
这是一款开源的构造实体几何(CSG) 实体模型CAD 系统,包括一个交互式的几何编辑器,光学跟踪支持图形着色和几何分析,计算机网络分布式帧缓存支持,图像处理和信号处理工具。主要应用在军事和工业领域,如车辆、机械零件和建筑的设计与分析。另外还能应用于辐射剂量规划、医学可视化、计算机图形学教育以及系统的性能基准测试等用途。它包含多种工具、实用程序和应用程序。
切片软件及3D打印机软件:
# : Cura
价格:免费
适用人群:初学者及一般使用者
软件平台:Windows, Mac, or Linux
类型:切片软件
开发商:Ultimaker
3D打印机厂商Ultimaker开发的开源切片和3D打印及主机软件。创客中最流行的3D切片软件之一,除Ultimaker设备外,还可用于RepRap、 Makerbot、 Printrbot、Lulzbot等3D打印设备。为入门级用户提供了一个易用、直观的界面。对于更高级的用户,其“Expert”模式可允许更精确地实现打印设置控制。
#: CraftWare
价格:免费
面向人群:初学者
软件平台:Windows、Mac
类型:切片软件
开发商:CraftUnique
与Cura类似,拥有“Easy” 和“Expert”两个级别类型。G代码可视化是一大特点,使用不同的颜色进行标识,以及其支持设置模式,相当于Simplify3D的功能。目前处于Beta测试阶段。
#: Netfabb基础版
价格:免费
级别:中级
软件平台:Windows, Mac, Linux
类型:3D修复与切片
开发商:Netfabb
Netfabb Basic是一个免费但功能强大的切片软件,包括修复和编辑工具等功能,使用者能够对其打印前最后一分钟仍能进行调整,而无需引入额外的修复软件或工具。 Netfabb还提供了一个专业版的软件,价格欧元。
#: Repetier
价格:免费
级别:中级
软件平台:Windows, Mac, Linux
类型:3D切片和3D打印机主机
开发商:Hot-World GmbH & Co. KG
Repetier是一个开源切片和3D打印机主机软件,主要在RepRap 3D打印机社区中流行(但与大多数商业FDM 3D打印机兼容)。 该平台包括有用的工具,如多挤出机支持(多达台挤出机!)、多切片机支持(意味着它与Slic3r,CuraEngine和Skeinforge切片机集成,可以容纳更多),多部件打印等。 Repetier还允许其用户通过台式机、平板电脑或智能手机从其基于浏览器的服务器访问和控制3D打印。
#: Simplify3D
价格:美元
级别:高级
软件平台:Windows, Mac, Linus
类型:3D修复与3D切片
开发商:Simplify3D
对于更先进的制造商和3D设计师,Simplify3D提供了专业的界面和许多通用工具,以帮助检查、修复和准备3D模型,进行最佳打印设置。制造过程可视化是一大亮点,它使制造商看到一个虚拟版本的打印(预览),提前预测在实际打印中可能发生的错误。 3D修复和切片软件还提供了大量的填充模式,可以自动创建支撑,并可以通过其双挤出向导工具与双挤出3D打印机匹配。几乎与所有3D打印机型号适配,可用作主机。目前尚无无线控制选项。
#: Slic3r
价格:免费
级别:高级
软件平台:Windows, Mac, Linux
类型:开源切片软件
开发商:Slic3r
唯一款非盈利的开放源码3D打印独立软件,其跨平台程序能带来高效高质的输入结果。 Slic3r的功能就是将.STL或.OBJ文件切片成多个可打印层,并生成G代码(沟通计算机和3D打印机的一种特殊机器指令)。切片程序通过将3D文件转换为3D打印机指导,高效准备打印3D文件。拥有多个视图,用户可以更好地预览其模型;3D蜂窝填充设置,允许用户更改打印对象的填充模式。 事实上,由于软件的开源性质,它集成了多个创新功能,如多个挤出机、边缘、微层、桥接检测、、可变层高度,顺序打印、网格切割、对象拆分、AMF格式支持等。
#: OctoPrint
价格:免费
类型:高级
软件平台:Windows, Mac, Linux
类型:3D打印机软件
开发商:OctoPrint
OctoPrint允许用户无线控制他们的3D打印机。 该3D打印机软件还可以从3D打印机切片程序中读取G代码,结合其gCodeVisualizer,制造商可以在打印前和打印时查看其G代码文件。
OctoPrint是一个非常受欢迎的开源工具,可能是远程监控和控制您的3D打印的最佳选择。
#: 3DPrinterOS
价格:免费 - 美元/年
适用人群:初学者到高级使用者
软件平台: Windows, Mac, Linux
类型:3D打印机运营系统
开发商:3D Control Systems
3DprinterOS是世界上第一个用于3D打印机的商用操作系统。 基于云的系统允许用户在准备他们的3D模型以进行打印时做各种各样的操作,包括修复设计、自定义设置、切割模型并将它们发送到世界上任何地方。用户可以通过一个基于云的单一界面,通过3D打印机网络共享CAD文件。
使用3DPrinter操作系统,您的3D打印机可以通过三种方式连接到云:通过软件客户端,通过硬件(即英特尔,Raspberry Pi,Arduino)或嵌入到您的3D打印机。
最后来个友情Tips:以上全部的需付费3D打印软件基本都有个天免费试用的期限权,不妨试试哪个更对你口味哦!
VINS-Mono:原理深剖+白板从零手推公式+源码逐行精讲!
自动驾驶领域在年呈现出快速发展的态势,各大创业公司纷纷宣布获得大额融资。1月日,文远知行完成B轮3.1亿美元融资;1月日,滴滴获得3亿美元融资;2月8日,小马智行获得1亿美元C+轮融资;3月日,Momenta完成C轮总计5亿美元的融资;4月日,大疆创新推出智能驾驶业务品牌“大疆车载”,向汽车企业提供自动驾驶解决方案;4月日,小鹏汽车发布搭载激光雷达的智能汽车小鹏P5,成为全球第一款量产的激光雷达智能汽车;4月日,图森未来在美股上市,被称为“全球自动驾驶第一股”;4月日,华为和北汽合作实现上海城区通勤无干预自动驾驶,成为全球唯一城市通勤自动驾驶量产车。
在自动驾驶、无人机、增强现实、机器人导航等技术领域中,定位和建图(SLAM)发挥着至关重要的作用,而视觉惯性里程计(VIO)作为SLAM算法中的一个重要分支,其理论复杂度较高。对VIO的掌握能力将直接影响到SLAM从业者的专业水平。VINS-Mono是由香港科技大学飞行机器人实验室(沈邵劼团队)在年开源的知名单目VIO算法。该算法由第一作者秦通(华为天才少年)提出,并在年获得IEEE Transactions on Robotics期刊的最佳论文奖。VINS-Mono使用单目相机和惯性测量单元(IMU)实现了视觉和惯性联合状态估计,同时能够估计传感器外参、IMU零偏以及传感器时延,是一款经典且优秀的VIO框架。
VINS-Mono在室内、室外大尺度以及高速飞行的无人机场景中均表现出色。在手机AR应用中,该算法优于当前最先进的Google Tango效果。同时,VINS-Mono也是VINS-Fusion算法的基础,应用于汽车SLAM时同样展现出高精度和稳定性。
在自动驾驶、无人机、增强现实、机器人导航等领域的岗位中,掌握VINS-Mono算法成为了关键技能之一。为此,计算机视觉life团队推出了独家课程《VINS-Mono:原理深剖+白板从零手推公式+源码逐行精讲》。该课程通过详细的步骤解读、疑难问题解析、结合作者回复的issue理解,帮助学员深入掌握VINS-Mono背后的原理。课程内容覆盖从基础理论到复杂公式的推导,通过白板从零开始手推公式的方式,使学员能够理解复杂公式的形成过程,从而真正掌握VINS-Mono的原理。课程价格根据购买时间调整,购买越晚价格越高。如有疑问,学员可加入QQ群()咨询,购买成功后会自动显示内部答疑群。
图像处理(十一)exposure fusion 图像曝光融合
本意是为了学习HDR,高动态范围成像,但HDR概念对我来说太复杂了,涉及到硬件和软件。我的目标是跳过硬件和tone mapping,只做最简单的多曝光融合,如下列图像
融合成一张
搜索曝光融合,出现的是《exposure fusion》这篇文章,像素级别的融合,再加上多尺度的平滑处理,从现在的眼光来看,是非常简单的,OpenCV也实现了这个算法,在lightroom中也有应用。
尽管原理简单,但实现上有坑,C++写了好几遍过不了,换成Python也错误,看了官方的matlab源码才知道坑。
论文提出了三种计算每个像素融合权重的的方法
对比度
在过曝图像或严重低曝光的区域,图像都基本是或0,因此这些区域是很平滑的,梯度信息几乎为0,这些也是曝光融合中要舍弃的区域——过曝部分缺乏细节,低曝光区域缺乏细节和亮度。因此,论文提出用laplace算子提取图像的梯度信息,梯度信息越小的像素在融合时占据的比重就越小,相反梯度信息越大的像素的比重就越大。对输入的第[公式]张图像[公式]
[公式]
饱和度
同样针对过曝或严重低曝光,二者的饱和度是接近于0的,而那些饱和度高的区域常常是需要保留的区域,因此论文通过三通道的标准差来衡量饱和度大小,以此得到不同的比重
[公式]
亮度
亮度越接近0或者的,很可能就是处在过曝或严重低曝光区域,而亮度在附近的常常可以认为是曝光良好的区域,这些区域的信息在融合过程中要尽量保留,比重尽量大,如下
[公式]
[公式]是方差,论文中取0.2。以上公式是我具体实现时使用的,三通道的比重相乘,为了简单,也可以提取出YCrCb通道,用Y通道算也可以。良好曝光不一定取0.5。
上面是人为提出的一些先验知识,接下来验证下是否有效
可以看出,对于严重低曝光的图像,响应值比较高的就是光源附近的细节,这些细节得以保留,而过曝图像往往在这些地方是没有细节的
同上,以亮度为例,该图在天空区域的曝光是良好的,而且具有一定的细节,得以保留
对于这一类局部过曝的图像,背光区域反而得到了较好的曝光,所以图中气球的细节和亮度响应值比较高,得以保留,而天空和光源部分的灰度值偏离、梯度也较小,因此这些过曝的区域的响应值(比重)很小,在融合时被舍弃。
上面根据对比度、饱和度、曝光三方面可以得到每个像素点在融合时的比重,三者合在一起
[公式]
为了防止多张图像融合,出现过高或者过低的值,要对[公式]进行归一化
[公式]
多张图像[公式],各自对应一张归一化的比重图[公式],融合
[公式]
上面的方法非常简单,但会得到十分粗糙的结果。我在具体实现时,得到的结果会出现很多黑色和纯白色的斑点(灰度值为0),而且存在一些光晕,如下:
经过我追本溯源,发现这是由于多张图像之间的灰度跳变太大导致的——假设现在有图像序列[公式],在点[公式]处,比重值分别是[公式],因此在融合时,[公式]点的灰度值主要取决于[公式];在旁边一个点,[公式]的比重值却是[公式],融合时就主要取决于[公式],而从[公式]的灰度值跳变太大,因此最后看起来有很多噪声。相邻点的比重相差会这么大,个人看法是比重由对比度、饱和度、亮度相乘得到,实际上,很多区域都是接近于0,差不多1e-4的值,三个相乘量级就到了1e-,任意一个指标突然变大变小,权重就一边倒了,基本集中在某一张图像上。理想情况是一系列对比度、饱和度、亮度平滑变化的图像,就不会出现这种问题,但实际也不可能拍这么多精细的图像。
如何解决?一个很直观的想法就是对每张图的权重图做平滑处理,缓解灰度跳变,重新归一化后,再融合,效果如下:
看得出来,有所改善,但还是不够平滑,存在一定程度的光晕,继续加大力度
又好一点了,但天空还是很明显
好像又好一点了!但还是存在一些光晕(后面怎么解决的还不清楚)。
但是每次都对原始分辨率做这么大的计算吗?
这又回到了上次总结的拉普拉斯金字塔融合,构造金字塔解决分辨率过大和滤波核过大的问题,这也是论文提出的方法
使用laplace金字塔,对每张图像分解出laplace金字塔,对应的比重图分解出高斯金字塔,根据比重对laplace金字塔做融合,从低分辨率开始上采样叠加同尺度的融合后laplace细节,即可得到结果,如下:
效果有点惊艳,不仅融合了多张图像中的细节,还保持了良好的曝光,和之前的对比还是很明显的,如过曝这个区域的细节还是很不错的!但为什么和之前直径的高斯模糊相比,解决了光晕,这一点是我暂时无法理解的。
算法十分简单,只要按部就班算出每个点的对比度、饱和度、曝光,结合起来,再加一个laplace金字塔分解,问题貌似就解决了。但我在实际写的时候,得到的结果却是这样的:
饱和度太高了,而且细节也没有得到保留。。。。。。一开始还以为是C++,我索引写错了之类的,重写了几遍都过不了,换成python也是一样的,也是错的,后面还是参考了官方的matlab代码,才发现不同:
即下面两张图的对比
当我把上采样的对象改成了官方的形式,就正常了。
至于为什么会这么差,我想可能是因为一路上采样,丢失的信息太多了,所以采用之前的高斯金字塔的次一级分辨率上采样可以减少信息损失。
代码见我的github
Python 3
鬼影
本篇讨论的多曝光图像融合,默认都是对齐的,但实际上不同时间拍的图像,会因相机抖动和环境的风吹草动,而导致内容有差别,使得最后的融合结果可能出现鬼影,而鬼影(ghost effect)也是HDR融合要解决的主要问题之一。
移动
考虑下面这个例子
可以看到画面中的三个人物都存在较明显的移动,经过上面的exposure fusion像素级融合,就会得到下面的结果
这一类情况下,不保证像素级的对齐,就会出现鬼影。
模糊
和多曝光融合类似的是多焦点融合,不同图像存在不同的局部模糊
保留对比度、饱和度,不计算曝光,得到的融合结果如下:
效果感觉还行,但又不很行 ! 如IMAGE块区域,第一张图有点类似于运动模糊的效果了,在曝光融合这里就近似于"没对齐",因此融合的结果有一些虚影、鬼影 !
虽然存在如上问题,但这个方法还是给后续的一些研究提供了思路,融合不断频段的信息做图像融合,不仅仅是曝光融合,多焦点融合等。
参考资料
Java学习资源
Java Commons Java tutorial WebService常用第三方webservice IDEEclipse Eclipse GUI Plugin Eclipse根据java代码生成UML图 Tomcat Hudson Jenkins Atlassian Bamboo TeamCity JUnit DbUnit JMockit TestNG ReportNG SLF4J Log4j Logback Log4E代码评审 guava jga Java Class Dependency Analyzer OW2Forge Rock apache Apache Commons sandbox中的项目无法直接通过maven进行依赖,必须通过svn下载源码,部署到本地maven仓库中。例如对于sandbox中的classscan项目: # 项目地址:commons.apache.org/sand... svn checkout mons/sandbox/classscan classscan cd classscan 当install带有parent的maven项目时,如果没有把parent一并install,其它项目引用时会出现 mvn install--Failed to read artifact descriptor for org.apache.maven.plugins:maven-source-plugin:jar:2.1.2 cd parent (classscan/parent) mvn clean package install -DskipTests cd ../api (classscan/api) mvn clean package install -DskipTests cd ../bcel (classscan/bcel) mvn clean package install -DskipTests 在pom.xml中添加依赖 org.apache.commons.classscan bcel 0.2-SNAPSHOT org.apache.commons.classscan api 0.2-SNAPSHOT Eclipse中Update Project,选择Force Update of Snapshots/Releases Apache HttpComponents Maven and M2Eclipse maven快速下载某个jar包依赖的所有jar 经常碰到这种事情:在一些非maven工程中(由于某种原因这种工程还是手工添加依赖的),需要用到某个新的类库(假设这个类库发布在maven库中),而这个类库又间接依赖很多其他类库,如果依赖路径非常复杂的话,一个个检查手动下载是很麻烦的事。下面给出一个便捷的办法,创建一个新目录里面建一个maven pom文件, 添加需要依赖的类库: 4.0.0 com.dep.download dep-download 1.0-SNAPSHOT com.xx.xxx yy-yyy x.y.z 在这个目录下运行命令,所有跟这个类库相关的直接和间接依赖的jar包都会下载到 ./target/dependency/下 杂项 间接依赖的jar包能否直接使用 如果工程依赖A.jar,并用maven设置好依赖,同时A.jar会依赖B.jar,所以maven在下载A.jar的同时会下载B.jar,这时如果项目发现需要使用B.jar中的一些内容,在maven中不必从新设置依赖,可以在工程中直接使用。 把某个本地jar包安装到本地仓库中 mvn install:install-file -DgroupId=“edu.jiangxin” -DartifactId=”gcu” -Dversion=“1.0.0” -Dpackaging=”jar” -Dfile=“D:\CS\J2EE\lib\edu.jiangxin.gcu-1.0.0.jar” 把某个本地jar包部署到某个远程仓库中 mvn deploy:deploy-file -DgroupId=“edu.jiangxin” -DartifactId=”gcu” -Dversion=“1.0.0” -Dpackaging=”jar” -Dfile=“D:\CS\J2EE\lib\edu.jiangxin.gcu-1.0.0.jar” -Durl= yourlocalrepository:... -DrepositoryId=internal bintray bintray.com/ Ant Eclipse Color Themes MyEclipse EclEmma eCobertura JavaNCSS Clover(收费) CAP (code analysis plugin) Visual Performance Analyzer VisualVM JD(Java Decompiler) 注:不支持命令行使用,因而很难批量编译。 jad 注:jad支持命令行方式使用,最新版本为1.5.8g,支持的class版本过低。经常出现问题:The class file version is .0 (only .3, .0 and .0 are supported)。还有一个工具uuDeJava,也是基于jad,所以估计也难以避免这个问题。 jdec JODED J Java Decompiler 注:收费软件,没有试用过 ProGuard FindBugs PMD Metric Jdepend SourceHelper Structure inFusion SourceMonitor Simian CheckStyle CCTE J-Technologies一家(收费) FORTIFY SCA(收费) coverity(收费) klocwork(收费) GProf Dot and Graphviz sikuli exe4j JBoss GlassFish Virgo Jetty cpDetector EZMorph Apache Shiro Struts Spring Hibernate iBATIS/MyBatis appfuse TopLink json neethi XML SAXON jsoup HTML Parser Java port of Mozilla charset detector(jchardet) JMX jsch * yFiles The yFiles diagramming software components are extensive class libraries that enable you to add high-quality diagramming functionality to your own software applications OpenLDAP Protobuf zip4j JFlex JavaCC sablecc Xtext antlr cglib javassist jclasslib ical4j 分词规则引擎 Drools jBPM OpenAS2 Java Native Access (JNA) mpi Java eBus JACOBA Apache POI - the Java API for Microsoft Documents iText(AGPL) aspose MVEL(Drools) OGNL(Struts) SPEL(Spring) JSP EL freemarker Velocity AuroraFusionForge简介
FusionForge是一个专为协同开发设计的全面平台,它集多种功能于一身,旨在提升团队间的沟通与协作效率。首先,它的通讯工具模块包括论坛、邮件列表和新闻服务,为团队成员提供了一个开放的讨论和信息分享空间,促进思想交流和知识共享。
在开发工具方面,FusionForge提供了强大的支持,包括bug跟踪系统,帮助团队有效地追踪和解决项目中的问题;项目管理工具,帮助团队成员协调任务,跟踪进度,确保项目按计划进行;源码控制系统则确保代码版本的管理和同步,便于团队成员协同开发和代码审查。
社区工具是FusionForge的另一个亮点,它支持文件发布,使得团队成员可以方便地共享文件和资源;软件分类功能有助于用户快速找到所需的工具和资源;此外,Web托管服务使得FusionForge成为一个一站式的开发平台,团队的网站和应用程序可以直接托管在平台上,无需额外的部署步骤。
总的来说,FusionForge是一个功能丰富的开发环境,无论是日常的交流,还是项目的具体实施,都能为团队提供稳定、高效的支持,是现代协作开发的理想选择。