Python mayavi库及mayavi管线

Mayavi库的基本元素Mayavi库中主要有两大部分功能  一类是用于处理图形可视化和图形操作的mlab模块  一类是操作管线对象窗口对象的apimlab包含   绘图函数:实现已有的数据进行可视化显示,可以是numpy数组构建的,也可以是外部读取的,比如读取一个文件   图形控制函数:实质上是对mayavi中的figure进行控制,比如可以通过gcf获得当前视图的指针,也可以通过clf来清空当前图形,通过close关闭当前图形  图形修饰函数:对当前绘制的函数进行一定的修饰和装饰,比如说绘制完图形之后需要增加一个颜色标识栏  图形控制函数,其他函数和Mlab管线控制函数或者是对坐标轴增加相应的标签等,比如使用xlaber可以在x轴上增加相应的标签  相机控制函数:对相机的操作,比如说move函数来移动相机到某个位置上,使用pitch,roll,yaw函数控制相机进行旋转等  其他函数:    animate:生成一段动态的可视化效果    get_engine:获得当前管线的engine  Mlab管线控制:可以设置当前管线的数据源也可以为当前绘制管线增加数据集使用addataset等Mayavi API  管线基础对象:可以通过这类函数获得Mayavi管线的各个基本对象  包括Scene,Source,Filter,ModuleManager,Module,PipelineBase,Engine等  主视窗和UI对象:用于视图绘制和UI绘制的    比如MayaviScene,SceneEditor等。我们可以在其他库中构建的用户界面里嵌入Mayavi窗口    比如可以结合TraitsUI和Mayavi构建一个可交互的三维可视化应用 mayavi的官方网址其中有所有的函数说明地址:http://docs.enthought.com/mayavi/mayavi/index.html #快速绘图实例'''mayavi跟tvtk相比提供了更方便的可视化功能通过调用mlab.mash绘制一个三维空间中图形的实例mayavi中mlab模块提供了方便快捷地绘制三维图发函数只要把数据准备好,通常只需要调用一次mlab的函数就可以看到数据的三维可视化效果'''>>> x = [[-1,1,1,-1,-1],[-1,1,1,-1,-1]]>>> y = [[-1,-1,-1,-1,-1],[1,1,1,1,1]]>>> z = [[1,1,-1,-1,1],[1,1,-1,-1,1]]>>> from mayavi import…

opencv使用convexityDefects计算轮廓凸缺陷

引自:http://www.xuebuyuan.com/1684976.html http://blog.csdn.net/lichengyu/article/details/38392473 http://www.cnblogs.com/yemeishu/archive/2013/01/19/2867286.html谈谈NITE 2与OpenCV结合提取指尖坐标 一 概念: Convexity hull, Convexity defects 如上图所示,黑色的轮廓线为convexity hull, 而convexity hull与手掌之间的部分为convexity defects. 每个convexity defect区域有四个特征量:起始点(startPoint),结束点(endPoint),距离convexity hull最远点(farPoint),最远点到convexity hull的距离(depth)。 二.OpenCV中的相关函数 void convexityDefects(InputArray contour, InputArray convexhull, OutputArrayconvexityDefects) 参数: coutour: 输入参数,检测到的轮廓,可以调用findContours函数得到; convexhull: 输入参数,检测到的凸包,可以调用convexHull函数得到。注意,convexHull函数可以得到vector<vector<Point>>和vector<vector<int>>两种类型结果,这里的convexhull应该为vector<vector<int>>类型,否则通不过ASSERT检查; convexityDefects:输出参数,检测到的最终结果,应为vector<vector<Vec4i>>类型,Vec4i存储了起始点(startPoint),结束点(endPoint),距离convexity hull最远点(farPoint)以及最远点到convexity hull的距离(depth) 三.代码 //http://docs.opencv.org/doc/tutorials/imgproc/shapedescriptors/hull/hull.html//http://www.codeproject.com/Articles/782602/Beginners-guide-to-understand-Fingertips-counting#include "opencv2/highgui/highgui.hpp" #include "opencv2/imgproc/imgproc.hpp"…