2016-05-06 7 views
0

私はCTスキャン画像のスタックを持っています。Abaqus/Pythonスクリプトを使用して複数の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 

次のステップは、座標のこのセットをインポートすることである(これらのスタックから1枚の画像)MATLABを用いたCTスキャン画像を処理した後、私は次のようにXYが異なるExcelシート内の各異なる境界領域の座標保存しました有限要素解析のためにAbaqus CAE Sketchにプロットします。 私は私のワークフローは、このようなものであることを把握:ワークブックのシートごとに

  1. インポートExcelワークブック

  2. 2.1。各行について:xy座標を得るために列を両方読む(各行は2つの列x、y座標を持つ)
    2.2。各xy座標をリストの中に入れる
    2.3。リストから、ワークブック

内の他のシートのためのスプライン法

  • ステップ2を繰り返しを使用したスケッチが、私はしばらくの間、検索し、次のようなものが見つかりました:

    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が組み込まれて)
    エクセル2013
    あなたがコンマとしてExcelファイルを読み込むしようとしている画像処理ツールボックス

  • 答えて

    0

    と Matlabの2016aを分離されたファイル。 CSVファイルは複数のタブを持つことはできません。あなたのreadコマンドはファイルをcsvとして解釈し、ファイル内のタブを反復することはできません(ただし、xlsxを保存してcsvを読み込むときにファイルが最初に正しく開かれているかどうかという質問が返されます)。

    XLS/XLSXファイルを解析して処理する多数のPythonライブラリがあります。

    Take a look at pyxlとのあなたのファイルを読むためにそれを使用。 あなたはおそらく

    from openpyxl import Workbook 
    (some commands to open the workbook) 
    
    listofnames=wb.sheetnames 
    for k in listofnames: 
        ws=wb.worksheets(k) 
    

    のようなものを使用し、入力あなたの残りのコマンドです。

    関連する問題