0

Python で処理された画像の名前を出力 .csv ファイルに追加する必要があります。そして、次の画像処理の結果を別の .csv 縦列または横列に入れます。

どのように?コードは次のとおりです。

 def humoments(self):               #function for HuMoments computation
     for filename in glob.iglob ('*.tif'):
         img = cv.LoadImageM(filename, cv.CV_LOAD_IMAGE_GRAYSCALE)
         cancer = cv.GetHuMoments(cv.Moments(img))
         #arr = cancer
         arr = numpy.array([cancer])
     with open('hu.csv', 'wb') as csvfile: #puts the array to file
         for elem in arr.flat[:50]:
             writer = csv.writer(csvfile, delimiter=' ', quotechar='|',      quoting=csv.QUOTE_MINIMAL)
             writer.writerow([('{}\t'.format(elem))])
4

1 に答える 1

0

これを行う最善の方法は、すべてのデータをリストまたは配列に収集し、行ごとに csv ファイルに書き込むことです。次に例を示します。

import csv
import numpy

allFileNames = [];
allArrs = [];
for i in range(10):
    arr = i * numpy.ones((5,5)) # fake data as an example
    filename = 'file ' + str(i) # fake file names

    allFileNames.append(filename) # keep track of the file name
    allArrs.append(list(arr.flatten())) # keep track of the data

with open('hu.csv', 'wb') as csvfile: #puts the array to file
    writer = csv.writer(csvfile)

    # write file names to the first row
    writer.writerow(allFileNames)

    # transpose arrs so each list corresponds to a column of the csv file.
    rows = map(list, zip(*allArrs))

    #write array to file
    writer.writerows(rows)

これにより、各列の上部にファイル名があり、その下に対応するデータがある csv ファイルが得られます。

于 2013-07-01T20:52:23.027 に答える