【最详细】PhotoScan(MetaShape)全流程教程
愿天下心诚士子,人人会PhotoScan!
愿天下惊艳后辈,人人可剑开天门!
本教程由CSDN用户CV_X.Wang撰写,所用数据均来自山东科技大学视觉测量研究团队,特此鸣谢!盗版必究!
一、引子
PhotoScan 是由 Agisoft 开发的一款专业的摄影测量软件,用于处理数字图像并生成三维空间中的高精度三维模型。该软件广泛应用于地理信息系统(GIS)、文化遗产保护、影视特效、虚拟现实(VR)等领域。以下是 PhotoScan 的一些主要功能和特点:
-
照片对齐:PhotoScan 可以自动识别和匹配多张照片中的特征点,从而确定相机的位置和方向,实现照片对齐。
-
密集点云生成:在照片对齐的基础上,PhotoScan 可以生成高密度的点云数据,反映物体表面的细节。
-
三维模型重建:PhotoScan 能够基于密集点云生成多边形网格模型,用户可以进一步进行纹理映射,生成具有真实感的三维模型。
-
地理配准:PhotoScan 支持将生成的三维模型与真实世界的坐标系进行配准,以便在 GIS 系统中使用。
-
正射影像生成:PhotoScan 可以生成高分辨率的正射影像(即无畸变的二维图像),适用于地图制作和土地测量。
-
数字高程模型(DEM):PhotoScan 能够基于三维点云数据生成地形的高程模型,适用于地形分析和工程设计。
-
批处理和脚本支持:PhotoScan 支持批量处理任务和脚本编写(如 Python 脚本),以提高工作效率和灵活性。
二、写作缘由
PhotoScan作为摄影测量方向不可或缺的软件,如何精准、高效、省事的使用,对于相关专业的本科生和研究生极其重要!血的教训,步骤不熟练,一定会出问题的。
三、基本操作流程
1.打开软件
2.将语言调整为中文(可选)
3.导入相片
导入影像有两种形式:①直接导入相片②添加整个文件夹(文件夹内为相片)
下面我们将以第一种形式,即直接导入相片进行操作。
点击上图的①添加照片,而后找到存放照片的位置,①选择需要导入的照片,②打开
目前我们已经成功将相片导入到PhotoScan内,即下图
①为相机信息,包括相片的名称,经纬度信息,姿态角信息等
②为可视化窗口,后续的稀疏点云、密集点云、Mesh、DSM等都会在该区域显示,目前显示的是我们导入的相片的位置。
③照片区,在此区域双击照片即可在②区查看当前相片。
④该区域为控制点或者是刺点的点位区,后续会详细介绍。
4.IMU辅助空三
IMU即惯性导航单元,若无人机搭载了 IMU模块,我们即可获得拍摄时相机的姿态角信息。
勾选使用IMU辅助,可使空三获取的姿态角更加精准。
5.修改参考坐标系统
①打开设置,在②中选择无人机拍摄时的坐标系统,本文为CGCS2000坐标系统。
6.设置空三权重
PhotoScan的空中三角测量采用的是BA法,由于相片本身带有位置与姿态信息,而空三可通过相片间的关系计算位置与姿态。那么二者必然会存在一个问题,我们用哪个数据的问题。
①设置的是位置的权重
②设置的是姿态的权重
①②考虑的主要是相片的位姿精度是否足够,具体的数值需要具体的设置,使得误差最小。
①②两处,填写的数值越大,代表着我们空三的权重越大,程度越高,相机在精度层面的可靠性越低。此处我们将①②都设置为默认的10。
7.空中三角测量
①主要影响运算速度,正常情况下,对于小范围区域,精度在“中”及以上皆可。
②是对于关键点和连接点的限制,对于小范围区域,采用默认参数即可。
点击OK即可进行空三。
8.优化对齐方式
由于我们相机的详细信息都包含在导入的图片内,且相机相关参数信息丰富。优化对齐方式采用默认即可。
9.相机检校
①处为初始相机默认的检校信息。
②处为我们通过空三---优化对齐方式后的检校信息(该信息一般是更为准确的)。
将调整后的相机信息导出
导出结果如下:
而后在“初始”界面内,将刚刚导出的相机信息导入。
然后固定相机参数:
选择Check all
此时我们便发现,“调整”变成了灰色。此时相机检校完成。
10.生成密集点云
我们在完成空中三角测量后,实际上生成的是稀疏点云,如下图所示区域的点
生成密集点云是在稀疏点云基础上实现的。
点击“创建点云”(在不同版本的photoscan中对于该功能的翻译及按钮所在位置略有不同)
等待进程结束,在这个过程中,CPU线程基本上可以拉满。
点击该按钮即可切换到密集点云
11.生成模型
在不同版本的photoscan中对于该功能的翻译及按钮所在位置略有不同
生成模型可以基于深度图或者是点云,本文采用深度图生成。
12.生成DEM
13.生成DSM(正射影像)
到此,PhotoScan的基础操作便已经完成。
四、基于Python的MetaShape源代码(包含可视化窗体)
详情请见本人博客链接
https://download.csdn.net/download/w2492602718/89518810
相关文章:

【最详细】PhotoScan(MetaShape)全流程教程
愿天下心诚士子,人人会PhotoScan! 愿天下惊艳后辈,人人可剑开天门! 本教程由CSDN用户CV_X.Wang撰写,所用数据均来自山东科技大学视觉测量研究团队,特此鸣谢!盗版必究! 一、引子 Ph…...

Excel多表格合并
我这里一共有25张表格: 所有表的表头和格式都一样,但是内容不一样: 现在我要做的是把所有表格的内容合并到一起,研究了一下发现WPS的这项功能要开会员的,本来想用代码撸出来的,但是后来想想还是找其他办法,后来找到"易用宝"这个插件,这个插件可以从如下地址下载:ht…...
AI作画工具深度剖析:Midjourney vs. Stable Diffusion (SD)
在人工智能技术的推动下,艺术创作的边界被不断拓宽,AI作画工具成为数字艺术家与创意人士的新宠。其中,Midjourney与Stable Diffusion(SD)作为当前领域的佼佼者,以其独特的算法机制、丰富的功能特性及高质量…...

ASP.NET Core Blazor 5:Blazor表单和数据
本章将描述 Blazor 为处理 HTML 表单提供的特性,包括对数据验证的支持。 1 准备工作 继续使用上一章项目。 创建 Blazor/Forms 文件夹并添加一个名为 EmptyLayout.razor 的 Razor 组件。本章使用这个组件作为主要的布局。 inherits LayoutComponentBase<div …...

C++ 仿QT信号槽二
// 实现原理 // 每个signal映射到bitset位,全集 // 每个slot做为signal的bitset子集 // signal全集触发,标志位有效 // flip将触发事件队列前置 // slot检测智能指针全集触发的标志位,主动运行子集绑定的函数 // 下一帧对bitset全集进行触发清…...

联合概率密度函数
目录 1. 什么是概率密度由联合概率密度求概率参考链接 1. 什么是概率密度 概率密度到底在表达什么? 外卖在20-40分钟内送达的概率 随机变量落在[20,40]之间的概率。下图中,对总面积做规范化处理,令总面积1, f ( x ) f(x) f(x)则成…...
【Java10】成员变量与局部变量
Java中的变量只有两种:成员变量和局部变量。 和C不同,没有全局变量了。 成员变量,field,我习惯称之为**”属性“**(但这些年,因为attribute更适合被叫做属性,所以渐渐不这么叫了)。 …...
Spring Session与分布式会话管理详解
随着微服务架构的普及,分布式系统中的会话管理变得尤为重要。传统的单点会话管理已经不能满足现代应用的需求。本文将深入探讨Spring Session及其在分布式会话管理中的应用。 什么是Spring Session? Spring Session是一个用于管理HttpSession的Spring框…...
从0开始学习pyspark--Spark DataFrame数据的选取与访问[第5节]
在PySpark中,选择和访问数据是处理Spark DataFrame的基本操作。以下是一些常用的方法来选择和访问DataFrame中的数据。 选择列(Selecting Columns): select: 用于选择DataFrame中的特定列。selectExpr: 用于通过SQL表达式选择列。 df.select…...

Fastjson首字母大小写问题
1、问题 使用Fastjson转json之后发现首字母小写。实体类如下: Data public class DataIdentity {private String BYDBSM;private String SNWRSSJSJ;private Integer CJFS 20; } 测试代码如下: public static void main(String[] args) {DataIdentit…...

GuLi商城-商品服务-API-品牌管理-效果优化与快速显示开关
<template><div class"mod-config"><el-form :inline"true" :model"dataForm" keyup.enter.native"getDataList()"><el-form-item><el-input v-model"dataForm.key" placeholder"参数名&qu…...
如何成为C#编程高手?
成为C#编程高手需要时间、实践和持续的学习。以下是一些建议,可以帮助你提升C#编程技能: 深入理解基础知识: 确保你对C#的基本语法、数据类型、控制结构、面向对象编程(OOP)原则有深刻的理解。学习如何使用Visual Stud…...

SpringBoot学习06-[SpringBoot与AOP、SpringBoot自定义starter]
SpringBoot自定义starter SpringBoot与AOPSpringBoot集成Mybatis-整合druid在不使用启动器的情况下,手动写配置类进行整合使用启动器的情况下,进行整合 SpringBoot启动原理源码解析创建SpringApplication初始化SpringApplication总结 启动 SpringBoot自定义Starter定…...

Maven - 在没有网络的情况下强制使用本地jar包
文章目录 问题解决思路解决办法删除 _remote.repositories 文件代码手动操作步骤验证 问题 非互联网环境,无法从中央仓库or镜像里拉取jar包。 服务器上搭建了一套Nexus私服。 Nexus私服故障,无法连接。 工程里新增了一个Jar的依赖, 本地仓…...

JAVA--JSON转换工具类
JSON转换工具类 import com.alibaba.fastjson.JSONObject; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackso…...

每日复盘-20240705
今日关注: 20240705 六日涨幅最大: ------1--------300391--------- 长药控股 五日涨幅最大: ------1--------300391--------- 长药控股 四日涨幅最大: ------1--------300391--------- 长药控股 三日涨幅最大: ------1--------300391--------- 长药控股 二日涨幅最…...
MySQL 一些用来做比较的函数
目录 IF:根据不同条件返回不同的值 CASE:多条件判断,类似于Switch函数 IFNULL:用于检查一个值是否为NULL,如果是,则用指定值代替 NULLIF:比较两个值,如果相等则返回NULLÿ…...

一个使用率超高的大数据实验室是如何练成的?
厦门大学嘉庚学院“大数据应用实训中心”(以下简称“实训中心”)自2022年建成以来,已经成为支撑“大数据专业”复合型人才培养的重要支撑,目前实训中心在专业课程实验教学、项目实训、数据分析类双创比赛、毕业设计等方面都有深入…...

Chiasmodon:一款针对域名安全的公开资源情报OSINT工具
关于Chiasmodon Chiasmodon是一款针对域名安全的公开资源情报OSINT工具,该工具可以帮助广大研究人员从各种来源收集目标域名的相关信息,并根据域名、Google Play应用程序、电子邮件地址、IP地址、组织和URL等信息进行有针对性的数据收集。 该工具可以提…...
如何在Java中实现PDF生成
如何在Java中实现PDF生成 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 在软件开发和企业应用中,生成PDF文档是一项常见的需求。Java作为一种强大…...

JavaSec-RCE
简介 RCE(Remote Code Execution),可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景:Groovy代码注入 Groovy是一种基于JVM的动态语言,语法简洁,支持闭包、动态类型和Java互操作性,…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...
synchronized 学习
学习源: https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖,也要考虑性能问题(场景) 2.常见面试问题: sync出…...

超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...
Golang dig框架与GraphQL的完美结合
将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...
C++ 基础特性深度解析
目录 引言 一、命名空间(namespace) C 中的命名空间 与 C 语言的对比 二、缺省参数 C 中的缺省参数 与 C 语言的对比 三、引用(reference) C 中的引用 与 C 语言的对比 四、inline(内联函数…...

微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。
1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj,再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...

LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf
FTP 客服管理系统 实现kefu123登录,不允许匿名访问,kefu只能访问/data/kefu目录,不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...