-2

.jpg 形式で保存される一連の画像があります。Python で次のコマンドを使用してそれらをロードし、カンマ区切りの値形式で txt ファイルに保存します。
元の画像セットのサイズはわずか 800 MB です。ただし、それらを txt ファイルに保存すると、40 GB の txt ドキュメントが形成されます。

これは何か意味があるのだろうか?

for filename in os.listdir(imagePath):
    if filename!='.DS_Store':
        b= scipy.misc.imread(filename,flatten=0)
        b2=np.reshape(b,np.size(b))
        var = ','.join(['%d' % num for num in b2])
        with open(savepath+'trainMatrix.txt',"a") as f:
            f.write(var+'\n')
            f.close()
4

1 に答える 1

2

画像ファイルで何をしようとしているかについて誤解があるようです。以下は、質問に基づいて考えられる2つのケースを示しています。

画像データを分析せずJPGにファイルをTXTファイルに読み込むには、つまり解凍などを行いません。

import os
from scipy.misc import imread
import numpy as np

imagePath = 'c:/your jpgs/'
savepath = imagePath

#save as text no decompressing
for filename in os.listdir(imagePath):
    if filename!='.DS_Store' and filename[-3:]=='jpg':
        with open(filename,'rb') as fin:
            b = fin.read()
            fin.close()
        out = ','.join(b)+'\n'
        with open(savepath+'trainMatrix1.txt','a') as fut:
            fut.write(out)
            fut.close()

出力は次のとおりです。

ÿ,Ø,ÿ,à, ,,J,F,I,F, ,,,, ,d, ,d, , ,ÿ,á,

画像データを解析(解凍JPGなど)しながらファイルをTXTファイルに読み込むこと。画像データの解凍に利用するものです。非常に圧縮された画像形式であるため、解凍すると巨大なテキスト ファイルになることに注意してください。すべてを追加しているので、出力は巨大になります! imreadJPG

#save as text decompressed image into bytes
for filename in os.listdir(imagePath):
    if filename!='.DS_Store' and filename[-3:]=='jpg':
        b = imread(filename,flatten=0).flatten()
        print b.shape
        out = ','.join('%d'%i for i in b)+'\n'
        print len(out)
        with open(savepath+'trainMatrix2.txt','a') as fut:
            fut.write(out)
            fut.close()            

出力は次のとおりです(カラーデータ):

255,255,255,245,245,245,125,125,125,72,72,72,17,17,17,2,2,2,15
于 2013-10-20T00:37:49.997 に答える