Windows 编译 tabb-level-set-segmentation

前期准备

MSYS2
下载地址
作用:MSYS2 is a collection of tools and libraries providing you with an easy-to-use environment for building
Everything
下载地址
作用:快速文件索引
git
下载地址
作用:下载源码库

环境搭建

安装MSYS2后打开terminal
执行

pacman -S mingw-w64-x86_64-gcc
pacman -S mingw-w64-x86_64-cmake
pacman -S mingw-w64-x86_64-ninja
安装mingw gcc/cmake/ninja

在这里插入图片描述
安装完成后,打开环境变量,将msys64\mingw64\bin的路径加入到PATH。

下载源码

注册github账号
右键打开 git bash

下载 tabb-level-set-segmentation 源码

git clone https://github.com/amy-tabb/tabb-level-set-segmentation.git

下载eigen源码

git clone https://gitlab.com/libeigen/eigen.git
cd eigen
git checkout 3.4.0 #若需要其他版本可以通过 git tag 查看并checkout

下载opencv, opencv_contrib 源码

git clone git@github.com:opencv/opencv.git
git clone git@github.com:opencv/opencv_contrib.git

如果需要4.10.0

cd opencv
git checkout 4.10.0 # opencv_contrib 也是同样操作,核心就是opencv_contrib 和 opencv需要保持一致

在这里插入图片描述

编译依赖

Eigen 直接使用无需编译

编译 Opencv

opencv_contrib/module内的所有内容拷贝到opencv/module中,当然可以用cmakeOPENCV_EXTRA_MODULES_PATH 指定。使用command prompt 进入opencv的主目录,执行

cmake -S . CMAKE_BUILD_TYPE=Release -B build -D CMAKE_INSTALL_PREFIX=build/install -D BUILD_opencv_world=ON -G Ninja

构建快慢取决于CPU核数和性能,我6核要等半个多小时,configure成功后分别执行

cd build
ninja
ninja install

执行完毕完成后 opencv 及其 contrib 的 modules 均已编译安装完毕。

修改源码

找到 tabb-level-set-segmentation\level-set-segmentation\src\LevelSetWrite.cpp,将 system(command.c_str()); 替换成 mkdir(iter_write_dir.c_str()); 并加上#include"direct.h",否则无法在windows上创建目录。

编译 tabb-level-set-segmentation

进入到 tabb-level-set-segmentation\level-set-segmentation 目录,执行

g++ src/*.cpp -o level_set_seg -fopenmp -std=gnu++11 -Wall -I"C:\Users\kris\Documents\Code\eigen3" -I "C:\Users\kris\Documents\Code\opencv\build\install\include"  -L"C:\Users\kris\Documents\Code\opencv\build\lib" -lgomp -lopencv_world4100

参数解析:

  • “C:\Users\kris\Documents\Code\eigen3” 是下载好的eigen源码路径,需要替换成自己的路径
  • “C:\Users\kris\Documents\Code\opencv\build\install\include” 为上一步构建好的opencv 头文件路径
  • “C:\Users\kris\Documents\Code\opencv\build\lib” 为编译好的 opencv 库文件路径
  • opencv_world4100 是编译opencv产生的库,4100即opencv的版本(4.10.0), 位置在C:\Users\kris\Documents\Code\opencv\build\lib(需要替换成你自己的路径),全称为 libopencv_world4100.dll.a.

然后生成 level_set_seg,此时在命令行执行 level_set_seg 会显示缺少dll文件,或者啥都不会显示,打开MSYS2 terminal 进入level_set_seg所在路径,执行

ldd level_set_seg

可以查看到底缺少什么dll文件,如下图
在这里插入图片描述
打开everything,搜索标记为not found的dll文件,并拷贝到 level_set_seg 所在文件夹。。。

执行/测试

根据 tabb-level-set-segmentation/README.md 来找测试用例并测试。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值