VTK 技术总结 番外篇 (一)VTK文件格式以及数据集
文件格式文件内容简介第一行是数据版本声明,说明文件版本。 第二行是自己定义的一个标题,最多256个字符,以回车符\n结束。 第三行是文件格式生命,由两个选择,ACSII或者二进制BINARY。 123# vtk DataFile Version 1.0Model_1ASCII 之后就是最重要的数据集了。是以DATASET type 格式来体现的。其中type 可以是 STRUCTURED_POINTS STRUCTURED_GRID UNSTRUCTURED_GRID POLYDATA RECTILINEAR_GRID FIELD 如果使用UNSTRCTURED_GRID: ‘The unstructured grid dataset consists of arbitrary combinations of any possible cell type. Unstructured grids are defined by points, cells, and cell types. The CELLS keyword requires two parameters:...
VTK 技术总结(三)显示unstructured grid 的网格线
非结构化Grid 的网格线之前我们说过如何查看两个多面体内部的Feature Lines 和外部的 Outline。然而那种方法只适用于Polygonal data,对于Unstructure Grid 并不适用。所以如果我们想要将Unstructured Grid显示出来,那么就需要vtkGeometryFilter这个功能。详情请看下图: Putanowicz and Magoules simplified the visualization process of unstructured grids with VTK [1]. The figure shown above clearly displayed how the outline grid can be presented by the VTK reader. 总体的实现过程可查看如下代码: 1234567891011121314151617181920212223242526272829def file_open(self, path): vtkReader =...
VTK 技术总结(二)多边形 Outline 和 Feature Line 创建
多边形Outline和 Feature Line 创建根据上一文章中,我们成功创建了一个正方形在创建的VTK视图中。但是在未来的计划中,我们还要想体现更为复杂的模型。而模型是由不同的点,线,面组成的。相比较ABAQUS中的Mesh来说,这些点线面(Feature)其实就是node, face element, body element。 那么如何在VTK的视图中展示这些特征呢?下面我们以一个简单的例子来说明: 12345678910111213141516171819202122232425262728293031# vtk DataFile Version 1.0Vibrational modes of plateASCIIDATASET POLYDATAPOINTS 12 float0.0 0.0 0.01.0 0.0 0.01.0 1.0 0.00.0 1.0 0.00.0 0.0 1.01.0 0.0 1.01.0 1.0 1.00.0 1.0 1.02.0 0.0 0.02.0 1.0 0.02.0 1.0 1.02.0 0.0 1.0POLYGONS 11 554...
VTK 技术总结(一)多边形创建
多边形创建传统VTK 文件包含五个部分: 文件版本和标识符。这一部分包含# vtk DataFileVersion x.x,除了版本号x.x之外,该行必须与显示的完全相同。 标题。标题由以行尾字符\n终止的字符组成。最大为256个字符,可用于描述数据并包括任何其它相关信息。 文件格式。文件格式描述文件的类型,可以是ASCII 或者二进制。在此行上,必须出现单个单词ASCII或者BINARY 数据集结构。几何部分描述了数据集的几何和拓扑。这部分以包含关键字DATASET 的行开头,后跟描述数据集类型的关键字。然后根据数据集的类型,其他关键字/数据组合将定义实际数据。 数据集属性。以关键字POINT_DATA或CELL_DATA开头,后跟一个整数,分别指定点或单元的数量。(先出现POINT_DATA还是CELL_DATA都没关系)。然后,其他关键字/数据组合定义实际的数据集属性值(即标量,向量,张量,法线,纹理坐标或字段数据)。 12345678910111213# vtk DataFile Version 1.0Vibrational modes...
VTK 技术总结 番外篇 (三)Inp2VTK based on C3D8R
INP和VTK 文件其实当我们了解了一些基本的VTK 文件格式,例如如何编写含有unstructured grid信息的.vtk文件,之后,我们就可以自己根据构思来去设计一些体素模型。然而,对于复杂模型来说,或者含有大量几何信息的模型来说,凭脑子来一点点的设计和堆积一个个CELL到我们的文件数据集中,肯定是不可能的。毕竟人脑能够构思框架和使用,但是机脑才是那个负责重复劳动的东西。 对于熟悉ABAQUS有限元的人来说,INP文件是最常接触的文件,它里面涵盖了有限元分析所需求的各种模型信息以及边界条件。ABAQUS的后处理功能虽然能够提供我们必要的一些信息,但是如果我们想了解有限元分析结果的数据结构,判断其结果准确性等等,我们就需要一些更强大的图形展示窗口,比如PARAVIEW。而且,我们还能更方便的基于从ABAQUS 中获得的结果文件,做进一步的分析,比如,Multiscale modelling 多尺度分析。但是在这里就不深入讲解了。 综上,INP文件转化为VTK文件,然后显示到PARAVIEW,或者我们自己编写的基于VTK 的图形窗口中,就显得很必要了。 INP...
通过Python文件调用另一个Python文件,并传递参数
实施方法在要调用的.py文件中导入sys。确定需要参数的数量和类型 12345import sys paramA = sys.argv[1]paramB = sys.argv[2]paramC = sys.argv[3]paramD = sys.argv[4] 在另一个 .py 文件,通过os.system 调用之前的 .py 文件。这里的 file_path 是绝对路径,后面的参数都是字符串,所以用的是 %s。 12import osos.system("python " + file_path + " %s %s %s %s" % (paramA, paramB, paramC, paramD))
PyQt - 有限元图形界面的建立
前言之前用过PyQt 来创建图形界面,结果长时间没用,忘记如何用了。正好项目又有涉及到这一部分的内容,从现在开始就开始记录一下使用过程吧。 这次的主要目的是创建一个图形界面,有简单的几个按键,而且还要有VTK文件展示窗口。所以整体来说,这个的应用还是有很大局限性的。
Voxel mesh model 体素元模型建立 (一)
什么是体素?本文将通过使用图像处理的方法来创建体素模型。最终将在Paraview中展现出来。
ImageJ 纤维横截面识别坐标与半径
纤维横截面图像复合材料的纤维横截面图像可以从SEM 或者Optical microscope中观察到。这里我所获取的复合材料纤维横截面是由Optical microscope中得到的,如下图所示。 可以看到上面有黑色的颜色,这些代表着voids或者defects。这些defects可能是切割这个样品的时候导致的,也可能是由于研磨抛光的时候,没有完全按照步骤来所导致的。但是不影响我们从中获取有用的信息。 ImageJ 纤维横截面识别以及信息提取首先把图像导入到 ImageJ 中,并转成8-bit格式( ImageJ -> Image -> Type -> 8-bit)。这里我所使用的图像并没有含有scale信息,实际上在保存图像的时候,要把尺度burn到图像上。之后会找个有ruler的图像说明如何设置scale。 然后使用Threshold 命令识别出图像的白色区域(纤维区域)(ImageJ -> Image -> Adjust -> Threshold)。结果如下图所示: 随后使用复制命令(Image ->...
Canny 介绍
Canny 介绍Canny算子与Marr(LoG)边缘检测方法类似,也属于是先平滑后求导数的方法。John Canny研究了最优边缘检测方法所需的特性,给出了评价边缘检测性能优劣的三个指标: 1 好的信噪比,即将非边缘点判定为边缘点的概率要低,将边缘点判为非边缘点的概率要低; 2 高的定位性能,即检测出的边缘点要尽可能在实际边缘的中心; 3 对单一边缘仅有唯一响应,即单个边缘产生多个响应的概率要低,并且虚假响应边缘应该得到最大抑制。 Canny检测实现过程第一步:灰度化 第二步:高斯滤波 首先生成二维高斯分布矩阵: $$G(x, y)=\frac{1}{2 \pi \sigma^{2}} e^{\frac{-\left(x^{2}+y^{2}\right)}{2 \sigma^{2}}}$$ 然后与灰度图像进行卷积实现滤波: $$f_{s}(x, y)=f(x, y) * G(x, y)$$ 第三步:计算梯度值和方向 求变化率时,对于一元函数,即求导;对于二元函数,求偏导。数字图像处理中,用一阶有限差分近似求取灰度值的梯度值(变化率)。...