当前位置: 首页 > news >正文

【最详细】PhotoScan(MetaShape)全流程教程

愿天下心诚士子,人人会PhotoScan!

愿天下惊艳后辈,人人可剑开天门!

本教程由CSDN用户CV_X.Wang撰写,所用数据均来自山东科技大学视觉测量研究团队,特此鸣谢!盗版必究!

一、引子

        

PhotoScan 是由 Agisoft 开发的一款专业的摄影测量软件,用于处理数字图像并生成三维空间中的高精度三维模型。该软件广泛应用于地理信息系统(GIS)、文化遗产保护、影视特效、虚拟现实(VR)等领域。以下是 PhotoScan 的一些主要功能和特点:

  1. 照片对齐:PhotoScan 可以自动识别和匹配多张照片中的特征点,从而确定相机的位置和方向,实现照片对齐。

  2. 密集点云生成:在照片对齐的基础上,PhotoScan 可以生成高密度的点云数据,反映物体表面的细节。

  3. 三维模型重建:PhotoScan 能够基于密集点云生成多边形网格模型,用户可以进一步进行纹理映射,生成具有真实感的三维模型。

  4. 地理配准:PhotoScan 支持将生成的三维模型与真实世界的坐标系进行配准,以便在 GIS 系统中使用。

  5. 正射影像生成:PhotoScan 可以生成高分辨率的正射影像(即无畸变的二维图像),适用于地图制作和土地测量。

  6. 数字高程模型(DEM):PhotoScan 能够基于三维点云数据生成地形的高程模型,适用于地形分析和工程设计。

  7. 批处理和脚本支持: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 表单提供的特性&#xff0c;包括对数据验证的支持。 1 准备工作 继续使用上一章项目。   创建 Blazor/Forms 文件夹并添加一个名为 EmptyLayout.razor 的 Razor 组件。本章使用这个组件作为主要的布局。 inherits LayoutComponentBase<div …...

C++ 仿QT信号槽二

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

联合概率密度函数

目录 1. 什么是概率密度由联合概率密度求概率参考链接 1. 什么是概率密度 概率密度到底在表达什么&#xff1f; 外卖在20-40分钟内送达的概率 随机变量落在[20,40]之间的概率。下图中&#xff0c;对总面积做规范化处理&#xff0c;令总面积1&#xff0c; f ( x ) f(x) f(x)则成…...

【Java10】成员变量与局部变量

Java中的变量只有两种&#xff1a;成员变量和局部变量。 和C不同&#xff0c;没有全局变量了。 成员变量&#xff0c;field&#xff0c;我习惯称之为**”属性“**&#xff08;但这些年&#xff0c;因为attribute更适合被叫做属性&#xff0c;所以渐渐不这么叫了&#xff09;。 …...

Spring Session与分布式会话管理详解

随着微服务架构的普及&#xff0c;分布式系统中的会话管理变得尤为重要。传统的单点会话管理已经不能满足现代应用的需求。本文将深入探讨Spring Session及其在分布式会话管理中的应用。 什么是Spring Session&#xff1f; Spring Session是一个用于管理HttpSession的Spring框…...

从0开始学习pyspark--Spark DataFrame数据的选取与访问[第5节]

在PySpark中&#xff0c;选择和访问数据是处理Spark DataFrame的基本操作。以下是一些常用的方法来选择和访问DataFrame中的数据。 选择列&#xff08;Selecting Columns&#xff09;: select: 用于选择DataFrame中的特定列。selectExpr: 用于通过SQL表达式选择列。 df.select…...

Fastjson首字母大小写问题

1、问题 使用Fastjson转json之后发现首字母小写。实体类如下&#xff1a; Data public class DataIdentity {private String BYDBSM;private String SNWRSSJSJ;private Integer CJFS 20; } 测试代码如下&#xff1a; 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#编程高手需要时间、实践和持续的学习。以下是一些建议&#xff0c;可以帮助你提升C#编程技能&#xff1a; 深入理解基础知识&#xff1a; 确保你对C#的基本语法、数据类型、控制结构、面向对象编程&#xff08;OOP&#xff09;原则有深刻的理解。学习如何使用Visual Stud…...

SpringBoot学习06-[SpringBoot与AOP、SpringBoot自定义starter]

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

Maven - 在没有网络的情况下强制使用本地jar包

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

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

今日关注&#xff1a; 20240705 六日涨幅最大: ------1--------300391--------- 长药控股 五日涨幅最大: ------1--------300391--------- 长药控股 四日涨幅最大: ------1--------300391--------- 长药控股 三日涨幅最大: ------1--------300391--------- 长药控股 二日涨幅最…...

MySQL 一些用来做比较的函数

目录 IF&#xff1a;根据不同条件返回不同的值 CASE&#xff1a;多条件判断&#xff0c;类似于Switch函数 IFNULL&#xff1a;用于检查一个值是否为NULL&#xff0c;如果是&#xff0c;则用指定值代替 NULLIF&#xff1a;比较两个值&#xff0c;如果相等则返回NULL&#xff…...

一个使用率超高的大数据实验室是如何练成的?

厦门大学嘉庚学院“大数据应用实训中心”&#xff08;以下简称“实训中心”&#xff09;自2022年建成以来&#xff0c;已经成为支撑“大数据专业”复合型人才培养的重要支撑&#xff0c;目前实训中心在专业课程实验教学、项目实训、数据分析类双创比赛、毕业设计等方面都有深入…...

Chiasmodon:一款针对域名安全的公开资源情报OSINT工具

关于Chiasmodon Chiasmodon是一款针对域名安全的公开资源情报OSINT工具&#xff0c;该工具可以帮助广大研究人员从各种来源收集目标域名的相关信息&#xff0c;并根据域名、Google Play应用程序、电子邮件地址、IP地址、组织和URL等信息进行有针对性的数据收集。 该工具可以提…...

如何在Java中实现PDF生成

如何在Java中实现PDF生成 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 在软件开发和企业应用中&#xff0c;生成PDF文档是一项常见的需求。Java作为一种强大…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析

今天聊的内容&#xff0c;我认为是AI开发里面非常重要的内容。它在AI开发里无处不在&#xff0c;当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗"&#xff0c;或者让翻译模型 "将这段合同翻译成商务日语" 时&#xff0c;输入的这句话就是 Prompt。…...

CTF show Web 红包题第六弹

提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框&#xff0c;很难让人不联想到SQL注入&#xff0c;但提示都说了不是SQL注入&#xff0c;所以就不往这方面想了 ​ 先查看一下网页源码&#xff0c;发现一段JavaScript代码&#xff0c;有一个关键类ctfs…...

进程地址空间(比特课总结)

一、进程地址空间 1. 环境变量 1 &#xff09;⽤户级环境变量与系统级环境变量 全局属性&#xff1a;环境变量具有全局属性&#xff0c;会被⼦进程继承。例如当bash启动⼦进程时&#xff0c;环 境变量会⾃动传递给⼦进程。 本地变量限制&#xff1a;本地变量只在当前进程(ba…...

centos 7 部署awstats 网站访问检测

一、基础环境准备&#xff08;两种安装方式都要做&#xff09; bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats&#xff0…...

高防服务器能够抵御哪些网络攻击呢?

高防服务器作为一种有着高度防御能力的服务器&#xff0c;可以帮助网站应对分布式拒绝服务攻击&#xff0c;有效识别和清理一些恶意的网络流量&#xff0c;为用户提供安全且稳定的网络环境&#xff0c;那么&#xff0c;高防服务器一般都可以抵御哪些网络攻击呢&#xff1f;下面…...

什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南

文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/55aefaea8a9f477e86d065227851fe3d.pn…...

html-<abbr> 缩写或首字母缩略词

定义与作用 <abbr> 标签用于表示缩写或首字母缩略词&#xff0c;它可以帮助用户更好地理解缩写的含义&#xff0c;尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时&#xff0c;会显示一个提示框。 示例&#x…...

HashMap中的put方法执行流程(流程图)

1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中&#xff0c;其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下&#xff1a; 初始判断与哈希计算&#xff1a; 首先&#xff0c;putVal 方法会检查当前的 table&#xff08;也就…...

CRMEB 中 PHP 短信扩展开发:涵盖一号通、阿里云、腾讯云、创蓝

目前已有一号通短信、阿里云短信、腾讯云短信扩展 扩展入口文件 文件目录 crmeb\services\sms\Sms.php 默认驱动类型为&#xff1a;一号通 namespace crmeb\services\sms;use crmeb\basic\BaseManager; use crmeb\services\AccessTokenServeService; use crmeb\services\sms\…...

用鸿蒙HarmonyOS5实现中国象棋小游戏的过程

下面是一个基于鸿蒙OS (HarmonyOS) 的中国象棋小游戏的实现代码。这个实现使用Java语言和鸿蒙的Ability框架。 1. 项目结构 /src/main/java/com/example/chinesechess/├── MainAbilitySlice.java // 主界面逻辑├── ChessView.java // 游戏视图和逻辑├──…...