ViSP学习:一、ViSP的快速安装。
一、 前提准备
安装环境:Win10(ver1903)+ VS2017(ver15.0)+ OPENCV(ver4.3.0)
0.ViSP官方教程文档:https://visp-doc.inria.fr/doxygen/visp-daily/index.html
选择从源代码安装: Tutorials for ViSP users-> Installation from source-> Tutorial: Installation from source for Windows with Visual C++ 2017 (vc15)
1.VS2017社区版
https://www.visualstudio.com/downloads/
注意:
工作负荷:使用C ++进行桌面开发,使用.net进行桌面开发。
组件:除建议外,Windows 10 SDK全选。
2.CMake
https://cmake.org/download/
选最新版本的cmake-X.XX.X-win64-x64.msi
3.GIT
https://git-for-windows.github.io/
选最新版本
若github无法直连,可以科学上网或者利用手机开4G热点
Git-X.XX.X-64-bit
4.opencv
http://opencv.org/releases.html
这里选用4.3.0,点击windows图标下载。
二、 基本安装方法
直接利用官方文档里面的命令行去做。
步骤如下。
1.快捷键win+r,输入cmd,并运行。(进入dos命令行)
输入如下命令并点击回车
setx VISP_WS "C:\visp-ws"
exit
2.再次进入cmd,输入如下命令并回车。
mkdir %VISP_WS%
exit
3.再次进入cmd,输入如下命令并回车
cd %VISP_WS%git clone https://github.com/lagadic/visp.git
(输入之后等待下载完毕再输入下一条)
cmake -G "Visual Studio 15 2017" -A "x64" %VISP_WS%\visp cmake --build . --config Release --target install
(同上)
setx Path "%Path%:%VISP_WS%\visp-build-vc15\install\x64\vc15\bin"exit
此处可能设置不成功,见后面常见问题部分。
4.再次进入cmd,输入如下命令并回车
setx VISP_DIR "%VISP_WS%\visp-build-vc15\install"exit
5.安装opencv。
将文件夹改名为opencv-4.3.0
再次进入cmd,输入如下命令并回车
setx OpenCV_DIR "%VISP_WS%\opencv-4.3.0\build"
exit
然后修改环境变量。我的电脑->右键->属性->高级系统设置->环境变量->path
添加一条C:\visp-ws\opencv-4.3.0\build\x64\vc15\bin
再次进入cmd,输入如下命令并回车
cd %VISP_WS%
cmake -G "Visual Studio 15 2017" -A "x64" %VISP_WS%\visp cmake --build . --config Release --target install
6.测试代码
准备文件。
打开教程网页。
Tutorials for ViSP users-> Getting started-> Tutorial: How to create and build a project that uses ViSP and CMake on Unix or Windows
翻到Advanced getting started。
在任意位置新建一个文件夹。打开之后,打开vs2017新建一个.cpp文件,复制网页中的Get tutorial-viewer.cpp file的代码,并保存为tutorial-viewer.cpp。
#include <visp3/gui/vpDisplayD3D.h>
#include <visp3/gui/vpDisplayGDI.h>
#include <visp3/gui/vpDisplayGTK.h>
#include <visp3/gui/vpDisplayOpenCV.h>
#include <visp3/gui/vpDisplayX.h>
#include <visp3/io/vpImageIo.h>
int main(int argc, char **argv)
{if (argc != 2) {printf("Usage: %s <image name.[pgm,ppm,jpeg,png,tiff,bmp,ras,jp2]>\n", argv[0]);return -1;}vpImage<vpRGBa> I;try {vpImageIo::read(I, argv[1]);} catch (...) {std::cout << "Cannot read image \"" << argv[1] << "\"" << std::endl;return -1;}try {#if defined(VISP_HAVE_X11)vpDisplayX d(I, vpDisplay::SCALE_AUTO);
#elif defined(VISP_HAVE_GDI)vpDisplayGDI d(I, vpDisplay::SCALE_AUTO);
#elif defined(VISP_HAVE_OPENCV)vpDisplayOpenCV d(I, vpDisplay::SCALE_AUTO);
#elif defined(VISP_HAVE_GTK)vpDisplayGTK d(I, vpDisplay::SCALE_AUTO);
#elif defined(VISP_HAVE_D3D9)vpDisplayD3D d(I, vpDisplay::SCALE_AUTO);
#elsestd::cout << "No image viewer is available..." << std::endl;
#endifvpDisplay::setTitle(I, "My image");vpDisplay::display(I);vpDisplay::flush(I);std::cout << "A click to quit..." << std::endl;vpDisplay::getClick(I);} catch (const vpException &e) {std::cout << "Catch an exception: " << e << std::endl;}
}
新建一个txt文档,命名为CMakeLists.txt,打开文档复制下面的内容进去并保存。
project(tutorial-image)
cmake_minimum_required(VERSION 2.8)
find_package(VISP REQUIRED)
include_directories(${VISP_INCLUDE_DIRS})
add_executable(tutorial-viewer tutorial-viewer.cpp)
target_link_libraries(tutorial-viewer ${VISP_LIBRARIES})
打开cmd命令行,输入如下命令
C:\> xcopy /E /I %VISP_WS%\visp\tutorial\image %VISP_WS%\image
然后在C:\visp-ws\image中找到monkey.ppm复制粘贴到自己新建的文件夹。
这样自己新建的文件夹里就有tutorial-viewer.cpp和CMakeLists.txt以及monkey.ppm三个文件
Cmake进行编译。
上边是自己新建文件夹的位置。下面,在自己的文件夹新建一个build文件夹。
注意选择VS2017和x64.点击finish
之后点击configure。出现红线后再点击configure。最后点击generate。
此时build文件夹已经生成.SLN文件。打开进入VS2017.
选择release以及x64,然后设置.CPP文件为启动项
之后选择选项卡:生成-生成tutorial-viewer。该文件位于build文件夹的release文件夹中。同时把monkey.ppm这个图片文件复制到该文件夹内。
将monkey.ppm拖到tutorial-viewer.exe上,测试程序。
结果如图。
三、 常见问题。
1.第二部分里的步骤3:
Git clone指令处:由于部分网络运营商无法直连github,可能造成无法下载。
可以选择切换4G等可以直连github的网络条件。也可以科学上网。
但需要注意:ssr等代理工具可能占用443端口,需要在git中设置一下使用全局代理。Git指令如下。
设置代理:
git config --global http.proxy 'socks5://127.0.0.1:1080'
git config --global https.proxy 'socks5://127.0.0.1:1080'
查看代理:
git config --global --get http.proxy
git config --global --get https.proxy
取消代理:
git config --global --unset http.proxy
git config --global --unset https.proxy
setx Path "%Path%:%VISP_WS%…处:
此处由于cmd只能处理短字节指令,因此此处可能设置不成功,需要手动设置环境变量。
我的电脑->右键->属性->高级系统设置->环境变量->path
添加一条C:\visp-ws\visp-build-vc15\install\x64\vc15\bin
测试示例代码时:
如果测试的是Quick getting started或者Advanced getting started,可能会因为ViSP自带的显示程序(即所谓的vsDisplayGDI这个API)和系统提供的win10 sdk不兼容造成程序闪退,此时的解决办法是采用第三方库opencv的GDI。(在ViSP的开发者论坛里,维护小组的建议也是如此)。这也就是这个教程为什么讲到了OPENCV第三方库的安装,就是为了调用vpDisplayOpenCV这个API去代替ViSP的原生显示程序。
解决办法:在Advanced getting started的Get tutorial-viewer.cpp代码中做如下修改:
删去该行
#elif defined(VISP_HAVE_GDI)
vpDisplayGDI d(I, vpDisplay::SCALE_AUTO);
此时
#elif defined(VISP_HAVE_OPENCV)
这一行应该被识别,从而变成彩色。
然后重新对项目进行编译即可。
ViSP学习:一、ViSP的快速安装。相关推荐
- Docker 快速安装搭建 Ngnix 环境,并配置反向代理
欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 高级架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 个人网站: https://www.ex ...
- VISP学习:二、Visp的手动安装
一. 简要说明 可能有的同学在快速安装之后已经注意到了,原生GDI的调用依然遇到问题.比如某些不能指定显示支持的类和api,无法指定使用opencv的显示框架.所以此处采用手动安装的方法禁用GDI,以 ...
- ViSP学习笔记(一):Ubuntu环境下ViSP安装
开发环境:Unbuntu 18.04 LTS + ROS Melodic + ViSP 3.3.1 文章内容主要参考ViSP官方教学文档:https://visp-doc.inria.fr/doxyg ...
- ViSP学习笔记(三):新建Visp工程并使用CMake完成编译
开发环境:Unbuntu 18.04 LTS + ROS Melodic + ViSP 3.3.1 文章内容主要参考ViSP官方教学文档:https://visp-doc.inria.fr/doxyg ...
- 【 ViSP(1) - Linux Melodic 源码安装 ViSP】
Linux Melodic 源码安装 ViSP Linux Melodic 源码安装 ViSP 1. ViSP 简介 2. 源码安装 2.1 Required packages 需要的安装包 2.2 ...
- Ubuntu18.04环境下visp、visp_ros、vision_visp手动安装完整指南
visp全称是visual servoing platform,是一个可以用于开发视觉跟踪和视觉伺服技术的库.其能够计算机器人的控制律,提供多种可用于追踪的视觉特征,更多的信息可以去官网查看.vi ...
- ViSP学习笔记(二十五):基于图像的视觉伺服
开发环境:Ubuntu 18.04 LTS + ROS Melodic + ViSP 3.3.1 文章内容主要参考ViSP官方教学文档:https://visp-doc.inria.fr/doxyge ...
- 学习PHP7如何快速安装WEB服务器
文章作者:Lccee 原创说明:欢迎转载,注明出处即可 如何安装web服务器? 学习php7需要安装web服务器,那么新手如何快速安装web服务器 首先我们来简单了解一下,什么叫web服务器 在了解什 ...
- c++入门代码_Golang Gin 实战(一)| 快速安装入门
Golang Gin 实战(一)| 快速安装入门 Gin 是一个非常优秀的Golang Web Framework,它不光API友好,性能也非常高,并且设计简洁,便于入门.所以它(Gin)非常受欢迎, ...
- ubuntu eclipse java,Ubuntu快速安装eclipse
Ubuntu快速安装eclipse教程,供大家参考,具体内容如下 1.先安装jdk,详情见链接 2.下载eclipse.tar.gz安装包(官网下载) 3.把下载好的安装包复制到/usr目录下 先cd ...
最新文章
- FPGA的设计艺术(5)STA实战之时钟偏斜对建立保持时间的影响以及时序报告分析
- netty 对 protobuf 协议的解码与包装探究(2)
- mongodb 存储过程 java_Java面试题分享-MongoDB
- ASP.NET Core 2.1 : 十五.图解路由(2.1 or earler)
- [2dPIC调试笔记]初始化变量1014(2)
- LeetCode 147. 对链表进行插入排序(链表)
- iBatis——执行原理
- JavaScript的类型自动转换高级玩法JSFuck
- 8.2-HSRP 第二次:重新搭建拓扑 //IOU
- HDU2200 Eddy's AC难题【组合计算】
- 称重传感器并联后的误差及附加误差
- 不使用手机代理,进行手机抓包
- 汉字unicode编码范围
- MapGuide应用开发系列(11)----创建自己的第一个MapGuide应用程序
- 华为安装gsm框架_华为mate30怎么安装谷歌服务?华为mate30系列安装GMS框架图文教程...
- 传奇客户端小地图上的文字描述修改方法
- VUE 动态响应的实现
- GNSS/INS组合导航(九):三维简化的INS/GPS组合导航系统
- 中级微观经济学笔记整理
- 计算机学硕专硕数学,考研常识:五类数学的区别
热门文章
- java traits,java traits还是mixins模式?
- CIFAR-10 数据集可视化详细讲解(附代码)
- 11月16日实验报告
- java 清空scanner_Java Scanner reset()用法及代码示例
- Java函数式编程入门之Function<T,R>接口
- java装箱问题_三维装箱问题Java代码的简单实现过程
- 2020软件工程夏令营分享贴
- c#俄罗斯方块视频教程下载地址[陈广老师]
- 看陈广老师c#参考视频总结(第八篇)
- 看陈广老师c#参考视频总结(第十篇 完)