版本: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虚拟空间模块编译及使用相关推荐

  1. OpenCV Viz 3D虚拟空间模块

    在OpenCV2.4.9发布release版本时添加了3D模块,实现起来非常简洁漂亮,三维虚拟空间模块是集成自三维计算机图形学.图像处理和可视化的VTK得到的,OpenCV3.0的OpenCV tut ...

  2. OpenCV_Viz——OpenCV中Viz的模块编译的无法解析的外部符号BUG

    写在前面 由于实验室需要,需要重新编译医学图像第三方库全家桶.这里就需要编译OpenCV,而编译后查看编译的库文件中缺少一个opencv_viz2413d.lib文件(没错,这里可以看出我使用的Ope ...

  3. Opencv中3D显示模块viz安装

    Opencv中3D显示模块viz安装 文章目录 前言 安装cmake 编译viz 编译opencv 3.4.4 4.0.0 VS2015测试 前言    最近工作需要在VS2105中调用opencv的 ...

  4. opencv生成3d模型_OpenCV4.2使用viz模块显示3D图像

    在OpenCV 3D视觉中如果需要显示三维数据或图像就需要用到viz模块,viz是OpenCV的3D显示模块,OpenCV官方release版本不包含此模块,需要我们自己cmake编译. Cmake步 ...

  5. 【OpenCV开发】使用OpenCV的OpenCL(ocl)模块

    参加OpenCV的OpenCL模块(以下称OCL)移植工作已经有2个月了.这里我说移植而不是开发,是因为大部分OCL模块的函数都是从已经很成熟的GPU模块移植过来的.于是目前阶段OCL模块所支持的函数 ...

  6. 使用OpenCV的OpenCL(ocl)模块

    Preface 参加OpenCV的OpenCL模块(以下称OCL)移植工作已经有2个月了.这里我说移植而不是开发,是因为大部分OCL模块的函数都是从已经很成熟的GPU模块移植过来的.于是目前阶段OCL ...

  7. OpenCV3的GPU模块编译

    [摘要] OpenCV3的GPU模块需要手动重新编译才可以使用.本文介绍了编译OpenCV3 + GPU模块的方法. [本文使用的操作系统.软件版本] OS:Windows10 OpenCV 3.0. ...

  8. Ubuntu22下OpenCV4.6.0+contrib模块编译安装

    目录 第一章 Ubuntu22下OpenCV4.6.0+contrib模块编译安装 第二章 ubuntu22下C++ kdevelop环境搭建:OpenCV示例 第三章 C++下OPENCV驱动调用海 ...

  9. 3d Slicer-DICOM模块之Query/Retrieve功能介绍

    本文由Markdown语法编辑器编辑完成. 1. DICOM模块 3d Slicer作为医学影像的开源处理软件,当然离不开医学影像数据. DICOM模块,就是专门负责DICOM影像的查找,获取,发送和 ...

最新文章

  1. 我是一名Cisco爱好 者
  2. Xamarin XAML语言教程Visual Studio中实现XAML预览
  3. [转]iis部署php项目
  4. MYSQL查看执行计划 Explain
  5. STL--lower_bound()upper_bound();
  6. 图标和文字跟着div比例放大缩小_电脑桌面图标变大了?与这3个原因有关,修改后可恢复...
  7. 为什么要使用Base64?
  8. STM32H743+CubeMX-SPI与DRV8889串行通讯,驱动步进电机
  9. 低代码平台,JeecgBoot v3.0版本发布—新里程牌开始,迎接VUE3版本到来
  10. Android中如何使按钮的背景变得透明
  11. 手机语音翻译的小妙招,一步一步教你!一键音频转文字
  12. RSocket 基于消息传递的反应式应用层网络协议
  13. OpenCV的第一个小程序:读取图像并显示
  14. 网页三剑客的一些序列号
  15. 笔记本(宏基4741G)升级为固态硬盘
  16. 字体的分类图示——对网页设计很有益的图
  17. python怎么横着输出_对python3中, print横向输出的方法详解
  18. GDKOI 2017 参赛总结
  19. 商标干货!所有企业都值得收藏!
  20. 大数据Map Reduce 和 MPP数据库 的区别

热门文章

  1. Design patterns 设计模式
  2. 搞事开始——Python基于PC版微信实现机器人
  3. ESP8266-D1 mini-V2 认识
  4. 图像识别 常用数据集
  5. 2020-09-04 CD40193十六进制加减Multisim仿真
  6. 【HTML5】字体加粗代码
  7. 【转载】那个裸辞的程序员,后来怎么样了?
  8. 程序员延寿指南 | A programmer's guide to live longer
  9. Confluence 6 Duplicate Key 相关问题解决
  10. java中把gui插入图片_在java中使用图片实现gui的美化.pdf