我有一堆CT扫描图像。在使用Matlab处理(来自那些堆栈的一个图像)CT扫描图像之后,我在不同的Excel表格中为每个不同的边界区域保存了XY坐标,如下所示:
I = imread('myCTscan.jpeg');
BW = im2bw(I);
[coords, labeledImg] = bwboundaries(BW, 4, 'holes');
sheet = 1;
for n=1:length(coords);
xlswrite('fig.xlsx',coords{n,1},sheet,'A1');
sheet = sheet+1;
end
然后,下一步是导入这组坐标并将其绘制到Abaqus CAE Sketch中进行有限元分析。 我发现我的工作流程是这样的:
我搜索了一会儿,发现了这样的事情:
from abaqus import *
lines= open('fig.xlsx', 'r').readlines()
pointList= []
for line in lines:
pointList.append(eval('(%s)' %line.strip()))
s1= mdb.models['Model-1'].ConstrainedSketch(name='mySketch', sheetSize=500.0)
s1.Spline(points= pointList)
但是这只能从一张纸上读取XY坐标而且我在上面的第3步卡住了。因此我的问题是如何使用Abaqus / Python(Abaqus 6.14,Python 2.7)脚本在不同的表格中读取这些坐标?
我是Python编程的新手,我可以阅读并理解语法,但写得不好(我还在努力学习如何在Abaqus中导入Python模块)。手动输入每个坐标(就像在Abaqus的modelAExample.py教程中一样)实际上是不可能的,因为我的每个CT扫描图像都可以有100 ++的边界区域和10k ++点。
我正在使用:
Windows 7 x64
Abaqus 6.14(内置Python 2.7)
Excel 2013
Matlab 2016a与图像处理工具箱
答案 0 :(得分:1)
您正在尝试将excel文件作为逗号分隔文件读取。根据定义,CSV文件不能包含多个选项卡。您的读取命令将文件解释为csv,并且不允许您遍历文件中的选项卡(尽管它首先解决了如何在保存xlsx和读取csv时正确打开文件的问题)。
有许多python库可以解析和处理XLS / XLSX文件。
Take a look at pyxl并使用它来读取您的文件。 您可能会使用类似
的内容module
然后输入您剩余的命令。