【opencv】viz 3D虚拟空间模块编译及使用
版本:opencv2.4.9 + vtk6.1.0
1、vtk6.1.0使用cmake编译
下载地址:http://www.vtk.org/files/release/6.1/VTK-6.1.0.zip
打开cmake,设置路径
选择好编译器,然后【Configure】【Generate】【Open Project】即可,分别选择Debug和Release,右键ALL_INSTALL,生成,右键INSTALL,仅用于项目,仅生成INSTALL.
添加环境变量,D:\build_VTK-6.1.0\bin\Debug以及D:\build_VTK-6.1.0\bin\Release到Path中。
2、opencv2.4.9与vtk6.1.0使用cmake编译
下载地址:https://opencv.org/releases.html
打开cmake,设置路径
点击【Configure】,将WITH_VTK打勾,WITH_CUDA去掉勾,再次点击【Configure】,设置VTK_DIR为之前编译好的vtk路径(即VTKConfig.cmake所在路径),再次点击【Configure】,此时可以看到检测到vtk,如下图:
点击【Generate】,然后【Open Project】打开VS工程,选择Release,右键ALL_BUILD,生成,右键INSTALL,仅用于项目,仅生成INSTALL;选择Debug,右键ALL_BUILD,生成,右键INSTALL,仅用于项目,仅生成INSTALL。(去掉WITH_CUDA对勾编译时间大概3-5分钟)
添加环境变量,D:\build_opencv2.4.9_vtk\install\x86\vc11\bin到Path中
为了节省空间,可以删除 除build_opencv2.4.9_vtk\install文件夹之外 的其他文件
3、例程
#include <opencv2/viz/vizcore.hpp>
#include <opencv2/calib3d/calib3d.hpp>
#include <iostream> using namespace cv;
using namespace std; /**
* @function main
*/
int main()
{ /// Create a window viz::Viz3d myWindow("Coordinate Frame"); /// Add coordinate axes myWindow.showWidget("Coordinate Widget", viz::WCoordinateSystem()); /// Add line to represent (1,1,1) axis viz::WLine axis(Point3f(-1.0f, -1.0f, -1.0f), Point3f(1.0f, 1.0f, 1.0f)); axis.setRenderingProperty(viz::LINE_WIDTH, 4.0); myWindow.showWidget("Line Widget", axis); /// Construct a cube widget viz::WCube cube_widget(Point3f(0.5, 0.5, 0.0), Point3f(0.0, 0.0, -0.5), true, viz::Color::blue()); cube_widget.setRenderingProperty(viz::LINE_WIDTH, 4.0); /// Display widget (update if already displayed) myWindow.showWidget("Cube Widget", cube_widget); /// Rodrigues vector Mat rot_vec = Mat::zeros(1, 3, CV_32F); float translation_phase = 0.0, translation = 0.0; while (!myWindow.wasStopped()) { //* Rotation using rodrigues /// Rotate around (1,1,1) rot_vec.at<float>(0, 0) += CV_PI * 0.01f; rot_vec.at<float>(0, 1) += CV_PI * 0.01f; rot_vec.at<float>(0, 2) += CV_PI * 0.01f; /// Shift on (1,1,1) translation_phase += CV_PI * 0.01f; translation = sin(translation_phase); Mat rot_mat; Rodrigues(rot_vec, rot_mat); /// Construct pose Affine3f pose(rot_mat, Vec3f(translation, translation, translation)); myWindow.setWidgetPose("Cube Widget", pose); myWindow.spinOnce(1, true); } return 0;
}
#include <opencv2/viz/vizcore.hpp>
#include <iostream> using namespace cv;
using namespace std; /**
* @function main
*/
int main()
{ /// Create a window viz::Viz3d myWindow("Viz Demo"); /// Start event loop myWindow.spin(); /// Event loop is over when pressed q, Q, e, E cout << "First event loop is over" << endl; /// Access window via its name viz::Viz3d sameWindow = viz::getWindowByName("Viz Demo"); /// Start event loop sameWindow.spin(); /// Event loop is over when pressed q, Q, e, E cout << "Second event loop is over" << endl; /// Event loop is over when pressed q, Q, e, E /// Start event loop once for 1 millisecond sameWindow.spinOnce(1, true); while(!sameWindow.wasStopped()) { /// Interact with window /// Event loop for 1 millisecond sameWindow.spinOnce(1, true); } /// Once more event loop is stopped cout << "Last event loop is over" << endl; return 0;
}
【opencv】viz 3D虚拟空间模块编译及使用相关推荐
- OpenCV Viz 3D虚拟空间模块
在OpenCV2.4.9发布release版本时添加了3D模块,实现起来非常简洁漂亮,三维虚拟空间模块是集成自三维计算机图形学.图像处理和可视化的VTK得到的,OpenCV3.0的OpenCV tut ...
- OpenCV_Viz——OpenCV中Viz的模块编译的无法解析的外部符号BUG
写在前面 由于实验室需要,需要重新编译医学图像第三方库全家桶.这里就需要编译OpenCV,而编译后查看编译的库文件中缺少一个opencv_viz2413d.lib文件(没错,这里可以看出我使用的Ope ...
- Opencv中3D显示模块viz安装
Opencv中3D显示模块viz安装 文章目录 前言 安装cmake 编译viz 编译opencv 3.4.4 4.0.0 VS2015测试 前言 最近工作需要在VS2105中调用opencv的 ...
- opencv生成3d模型_OpenCV4.2使用viz模块显示3D图像
在OpenCV 3D视觉中如果需要显示三维数据或图像就需要用到viz模块,viz是OpenCV的3D显示模块,OpenCV官方release版本不包含此模块,需要我们自己cmake编译. Cmake步 ...
- 【OpenCV开发】使用OpenCV的OpenCL(ocl)模块
参加OpenCV的OpenCL模块(以下称OCL)移植工作已经有2个月了.这里我说移植而不是开发,是因为大部分OCL模块的函数都是从已经很成熟的GPU模块移植过来的.于是目前阶段OCL模块所支持的函数 ...
- 使用OpenCV的OpenCL(ocl)模块
Preface 参加OpenCV的OpenCL模块(以下称OCL)移植工作已经有2个月了.这里我说移植而不是开发,是因为大部分OCL模块的函数都是从已经很成熟的GPU模块移植过来的.于是目前阶段OCL ...
- OpenCV3的GPU模块编译
[摘要] OpenCV3的GPU模块需要手动重新编译才可以使用.本文介绍了编译OpenCV3 + GPU模块的方法. [本文使用的操作系统.软件版本] OS:Windows10 OpenCV 3.0. ...
- Ubuntu22下OpenCV4.6.0+contrib模块编译安装
目录 第一章 Ubuntu22下OpenCV4.6.0+contrib模块编译安装 第二章 ubuntu22下C++ kdevelop环境搭建:OpenCV示例 第三章 C++下OPENCV驱动调用海 ...
- 3d Slicer-DICOM模块之Query/Retrieve功能介绍
本文由Markdown语法编辑器编辑完成. 1. DICOM模块 3d Slicer作为医学影像的开源处理软件,当然离不开医学影像数据. DICOM模块,就是专门负责DICOM影像的查找,获取,发送和 ...
最新文章
- 我是一名Cisco爱好 者
- Xamarin XAML语言教程Visual Studio中实现XAML预览
- [转]iis部署php项目
- MYSQL查看执行计划 Explain
- STL--lower_bound()upper_bound();
- 图标和文字跟着div比例放大缩小_电脑桌面图标变大了?与这3个原因有关,修改后可恢复...
- 为什么要使用Base64?
- STM32H743+CubeMX-SPI与DRV8889串行通讯,驱动步进电机
- 低代码平台,JeecgBoot v3.0版本发布—新里程牌开始,迎接VUE3版本到来
- Android中如何使按钮的背景变得透明
- 手机语音翻译的小妙招,一步一步教你!一键音频转文字
- RSocket 基于消息传递的反应式应用层网络协议
- OpenCV的第一个小程序:读取图像并显示
- 网页三剑客的一些序列号
- 笔记本(宏基4741G)升级为固态硬盘
- 字体的分类图示——对网页设计很有益的图
- python怎么横着输出_对python3中, print横向输出的方法详解
- GDKOI 2017 参赛总结
- 商标干货!所有企业都值得收藏!
- 大数据Map Reduce 和 MPP数据库 的区别