Win 11 安装pycolmap

news2024/10/6 14:25:44

1.vcpkg安装

1.1 下载vcpkg源码

>> git clone git@github.com:microsoft/vcpkg.git

1.2 编译生成vcpkg工具

>> .\vcpkg\bootstrap-vcpkg.bat

这样在vcpkg文件夹下就会生成vcpkg.exe文件

2.colmap安装

2.1 命令安装colmap的gpu版本

>> .\vcpkg install colmap[cuda,tests]:x64-windows

不出意外应该会报错

2.2 更改colmap的版本

把ports下面colmap信息修改一下
在这里插入图片描述
修改后的portfile.cmake文件内容如下:

set(COLMAP_REF "8e13af17d9628d61db1704fbbe30ee954f1eee52") # 3.7 fix

vcpkg_from_github(
    OUT_SOURCE_PATH SOURCE_PATH
    REPO colmap/colmap
    REF ${COLMAP_REF}
    SHA512 892755d0e1ac1b99e5dc53c20d60e79900be5eb262307ea1d0bbcd61c74e7ec7f98bd6761f79ff03d29ac7d39419a5dd86744509aa2f49e7381f27118894695e
    HEAD_REF dev
    PATCHES
        fix-dependencies.patch
)

if (NOT TRIPLET_SYSTEM_ARCH STREQUAL "x64" AND ("cuda" IN_LIST FEATURES OR "cuda-redist" IN_LIST FEATURES))
    message(FATAL_ERROR "Feature cuda and cuda-redist require x64 triplet.")
endif()

# set GIT_COMMIT_ID and GIT_COMMIT_DATE
if(DEFINED VCPKG_HEAD_VERSION)
    set(GIT_COMMIT_ID "${VCPKG_HEAD_VERSION}")
else()
    set(GIT_COMMIT_ID "${COLMAP_REF}")
endif()

string(TIMESTAMP COLMAP_GIT_COMMIT_DATE "%Y-%m-%d")

set(CUDA_ENABLED OFF)
set(TESTS_ENABLED OFF)

if("cuda" IN_LIST FEATURES)
    set(CUDA_ENABLED ON)
endif()

if("cuda-redist" IN_LIST FEATURES)
    set(CUDA_ENABLED ON)
    set(CUDA_ARCHS "Common")
endif()

if("tests" IN_LIST FEATURES)
    set(TESTS_ENABLED ON)
endif()

set(OPENMP_ENABLED ON)
if (VCPKG_TARGET_IS_OSX AND VCPKG_TARGET_ARCHITECTURE MATCHES "arm")
    set(OPENMP_ENABLED Off)
endif()

vcpkg_cmake_configure(
    SOURCE_PATH "${SOURCE_PATH}"
    DISABLE_PARALLEL_CONFIGURE
    OPTIONS
        -DCUDA_ENABLED=${CUDA_ENABLED}
        -DCUDA_ARCHS=${CUDA_ARCHS}
        -DTESTS_ENABLED=${TESTS_ENABLED}
        -DGIT_COMMIT_ID=${GIT_COMMIT_ID}
        -DGIT_COMMIT_DATE=${COLMAP_GIT_COMMIT_DATE}
        -DOPENMP_ENABLED=${OPENMP_ENABLED}
)

vcpkg_cmake_install()

vcpkg_cmake_config_fixup()

file(GLOB TOOL_FILENAMES "${CURRENT_PACKAGES_DIR}/bin/*")
foreach(TOOL_FILENAME ${TOOL_FILENAMES})
    get_filename_component(TEST_TOOL_NAME ${TOOL_FILENAME} NAME_WLE)
    list(APPEND COLMAP_TOOL_NAMES "${TEST_TOOL_NAME}")
endforeach()

vcpkg_copy_tools(TOOL_NAMES ${COLMAP_TOOL_NAMES} AUTO_CLEAN)

# remove empty folders and unused files
file(REMOVE_RECURSE
    "${CURRENT_PACKAGES_DIR}/debug/include"
    "${CURRENT_PACKAGES_DIR}/debug/share"
    "${CURRENT_PACKAGES_DIR}/include/colmap/exe"
    "${CURRENT_PACKAGES_DIR}/include/colmap/lib/Graclus/multilevelLib"
    "${CURRENT_PACKAGES_DIR}/include/colmap/tools"
    "${CURRENT_PACKAGES_DIR}/include/colmap/ui/media"
    "${CURRENT_PACKAGES_DIR}/include/colmap/ui/shaders"
    "${CURRENT_PACKAGES_DIR}/COLMAP.bat"
    "${CURRENT_PACKAGES_DIR}/RUN_TESTS.bat"
    "${CURRENT_PACKAGES_DIR}/debug/COLMAP.bat"
    "${CURRENT_PACKAGES_DIR}/debug/RUN_TESTS.bat"
    "${CURRENT_PACKAGES_DIR}/debug/bin"
)

vcpkg_copy_pdbs()

file(INSTALL "${SOURCE_PATH}/COPYING.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)

再次运行上面安装命令就可以安装成功,这里说明一下,我这边挂了vpn。

2.3 把colmap源码里面src->exe文件夹里的.h文件拷贝出来,放到vcpkg安装colmap路径

在这里插入图片描述

3.安装pycolmap

3.1 下载源码

>> git clone --recursive git@github.com:colmap/pycolmap.git

3.2 切换到v0.3.0版本

>> git checkout v0.3.0

3.3 安装pycolmap

>> cd pycolmap && pip install .

不出意外就安装成功了。
在这里插入图片描述

打完收工!

参考资料

[1] https://github.com/colmap/pycolmap
[2] https://github.com/colmap/colmap
[3] https://github.com/microsoft/vcpkg

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

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

相关文章

矩阵 行列式的计算

行列式要求 要计算行列式,那么这个矩阵一定是一个方阵 行列式性质 行列式转置后值不变互换行列式中两行,值变为相反数行列式中两行成比例,行列式为0行列式中一行所有元素乘以一个数后加到另一行,行列式值不变 行列式的计算有很…

【编译原理】第二章部分课后题答案

《编译原理(第三版)》陈意云著 第 二 章 课 后 习 题 T 2.3 叙述由下列正规式描述的语言 0(0∣1)∗0\space\space0\space\space(\space\space 0\space\space |\space\space 1\space\space)^{\space*\space\space}00 ( 0 ∣ 1 ) ∗ 0 正规式规定开…

Java搭建宝塔部署实战毕设项目springboot销售培训考评系统源码

大家好啊,我是测评君,欢迎来到web测评。 本期给大家带来一套Java开发的毕业设计项目springboot销售培训考评系统源码。 技术架构 技术框架:jQuery MySQL5.7 mybatis shiro Layui HTML CSS JS jpa运行环境:jdk8 IntelliJ…

【Linux】四、Linux 进程概念(三)|进程优先级|环境变量

目录 七、进程优先级 7.1 基本概念 7.1.1 什么是优先级 7.1.2 为什么存在优先级 7.1.3 Linux 优先级特点 7.2 查看系统进程 7.3 PRI 和 IN 7.4 查看进程优先级和更改进程优先级 7.5 其它概念 7.6 进程切换 八、环境变量 8.1 环境变量基本概念 8.2 常见环境变量 8…

windows下node.js通过N-API调用c++函数

环境准备 vscode安装(以下均在vscode中操作)node.js安装,版本不要太老c工具链安装,安装Visual Studio2019社区版即可,或者执行 npm install --global windows-build-tools(这个我没试过,window…

ARM SDRAM

前言 涉及到的文档: S5PV210_UM_REV1.1 x210cv3.pdf K4T1G164QE.pdf 一、SDRAM 引入 1、简介 SDRAM:Syncronized Dynamic Ramdam Access Memory,同步动态随机存储器; DDR:DDR 就是 DDR SDRAM,是 SDRAM 的升级版。…

[论文分享] DnD: A Cross-Architecture Deep Neural Network Decompiler

DnD: A Cross-Architecture Deep Neural Network Decompiler [USENIX 2022] Ruoyu Wu Purdue University Taegyu Kim The Pennsylvania State University Dave (Jing) Tian Purdue University Antonio Bianchi Purdue University Dongyan Xu Purdue University 深度神经网络(…

web前端期末大作业:婚纱网页主题网站设计——唯一旅拍婚纱公司网站HTML+CSS+JavaScript

👨‍🎓静态网站的编写主要是用 HTML DⅣV CSSJS等来完成页面的排版设计👩‍🎓,一般的网页作业需要融入以下知识点:div布局、浮动定位、高级css、表格、表单及验证、js轮播图、音频视频Fash的应用、uli、下拉…

代码随想录训练营day59, 下一个更大元素II, 接雨水

下一个更大元素II 给定一个循环数组, 输出每个元素的下一个更大元素, 没有则-1 所以在遍历的过程中, 模拟走了两遍nums class Solution {public int[] nextGreaterElements(int[] nums) {int len nums.length;//先进行边界判断if(nums null || len < 1){return new int…

Python制作读者下载器,实现随时随地免费看

前言 嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 又到了学Python时刻~ 一个看书党一年有多少money投入小说行业呢~ 碰上一本好看的书&#xff0c;你能购买上多少章呢~ 其中的投入&#xff0c;无法想象&#xff0c;尤其是兴致上来了&#xff0c;不得投上个礼物给作者…

redis之作为缓存使用

写在前面 Redis因为其自身高性能的数据读取能力&#xff0c;因此会经常被应用到缓存的场景中&#xff0c;本文就一起看下Redis当做缓存使用时的特点&#xff0c;问题&#xff0c;以及需要注意的点。 1&#xff1a;缓存的架构模式 从架构模式上来看缓存系统可以分为旁路缓存&…

Kotlin 基础学习笔记第八章——高阶函数:Lambda作为形参和返回值

一、声明高阶函数 高阶函数定义&#xff1a;高阶函数就是以另一个函数作为参数或者返回值的函数。 在kotlin中&#xff0c;函数可以用lambda或者函数引用来表示。因此&#xff0c;任何以lambda或者函数引用作为参数的函数&#xff0c;或者返回值为lamda或函数应用的函数&#x…

基于遗传算法优化的lssvm回归预测-附代码

基于遗传算法优化的lssvm回归预测 - 附代码 文章目录基于遗传算法优化的lssvm回归预测 - 附代码1.数据集2.lssvm模型3.基于遗传算法优化的LSSVM4.测试结果5.Matlab代码摘要&#xff1a;为了提高最小二乘支持向量机&#xff08;lssvm&#xff09;的回归预测准确率&#xff0c;对…

使用openshift 进行云平台连接

使用openshift 进行云平台连接 OpenShift CLI on Windows openshift 文档地址 OpenShift CLI on Mac 通过Homebrew方式安装 brew install openshift-cli安装完成&#xff0c;进行验证 oc version服务连接 oc login 服务地址根据提示输入用户名和密码&#xff0c;即可连接…

某讯滑块验证码反汇编分析-第一章

某讯滑块验证码反汇编分析-第一章js分析初步分析vmp结构js分析 在滑动完成后&#xff0c;会请求【cap_union_new_verify】接口&#xff0c;其中有5个比较长的参数&#xff0c;看起来可能会有加密的&#xff0c;分别如下。 参数名来源uasesscollecteksvData 那现在js看看这些参…

让车机「下雨」,路特斯的智能座舱跑偏了吗?

HIEV消息&#xff08;文/张祥威&#xff09;“我们今天用双8155&#xff0c;都觉得&#xff08;算力&#xff09;还不够。”杨平说。 这位路特斯的智能座舱研发负责人&#xff0c;目前带领着一支两百多人的团队&#xff0c;为Eletre这款车操刀座舱智能化。 双8155&#xff0c;指…

Gitee应用(1):快速搭建Git环境在不同电脑同步文件

一、前言 环境&#xff1a;Windows 11 64位 &#xff1b;vscode&#xff1a;1.73.1 当你要操作在两台不同的电脑上操作&#xff0c;或许经常会遇到一个问题&#xff0c;就是怎么同步同一个或几个文件&#xff0c;以方便你在不同的电脑上进行同个文件内容的创作。 在申请了公司电…

【Java难点攻克】「NIO和内存映射性能提升系列」彻底透析NIO底层的内存映射机制原理与Direct Memory的关系

NIO与内存映射文件 Java类库中的NIO包相对于IO包来说有一个新功能就是 【内存映射文件】&#xff0c;在业务层面的日常开发过程中并不是经常会使用&#xff0c;但是一旦在处理大文件时是比较理想的提高效率的手段&#xff0c;之前已经在基于API和开发实战角度介绍了相关的大文…

Java Math类

JavaMath类\huge{Java \space Math类}Java Math类 Math类 包含执行基本数字运算的方法&#xff0c;Math类没有提供公开的构造器。 MathMathMath类本质就是一个工具类&#xff0c;提供许多方法用于其他类调用&#xff0c;但是无法创建子类对象。 常用方法 ①. abs()取绝对值…

CANoe测试的两种方式Test Module 和 Test Unit对比,你常用哪种呢?

&#x1f345; 我是蚂蚁小兵&#xff0c;专注于车载诊断领域&#xff0c;尤其擅长于对CANoe工具的使用&#x1f345; 寻找组织 &#xff0c;答疑解惑&#xff0c;摸鱼聊天&#xff0c;博客源码&#xff0c;点击加入&#x1f449;【相亲相爱一家人】&#x1f345; 玩转CANoe&…