2016-04-06 8 views
0

ニューラルネットワークを介していくつかの画像を実行したいのですが、データ用の.csvファイルを作成したいと思います。どのように画像を表現し、各画像を別々に保存するCSVを作成できますか?複数の画像をcsvに変換するには?

+0

ニューラルネットワークはモデルの一種ではありませんか?どのようにモデルを使ってイメージを実行していますか、いくつかの例がありますか?また、csvの列見出しと最初の数行がどのように見えるかについての例もあります。 – user454038

答えて

0

アプローチの1つは、numpyを使用してイメージを配列に変換し、次にCSVファイルまたは単にカンマで区切ったリストに変換できることです。

csvデータを操作したり、必要に応じて元の画像を取得したりすることができます。

上記の概念を示す基本的なコードです。

import Image 
import numpy as np 

#Function to convert image to array or list 
def loadImage (inFileName, outType) : 
    img = Image.open(inFileName) 
    img.load() 
    data = np.asarray(img, dtype="int32") 
    if outType == "anArray": 
     return data 
    if outType == "aList": 
     return list(data) 


#Load image to array 
myArray1 = loadImage("bug.png", "anArray") 

#Load image to a list 
myList1 = loadImage("bug.png", "aList") 
0

Base64でイメージをエンコードできますが、カンマはBase64の文字の一部ではないため、CSVを使用することができます。

参照:Best way to separate two base64 strings

+0

これはニューラルネットワークへの入力としては意味がありません。 – Amadan

+0

ネットは入力CSVをいずれかの方法でデコードする必要があるため、フォーマットは無関係です。 Base64は、ピクセル値のベクトル/行列の上にスペースを保存するだけです。つまり、CSVよりも優れたオプションがあることは間違いありません。そのうちのいくつかは、より高速な直列化と優れたツーリングを備えています。 – fandrianto

+0

ああ、あなたが今何を意味しているのか分かります。私はOPがすでにCSVを使用する何らかの理由を持っていると考えています(たとえば、入力用にCSVを読み込む既存のNNツール)。ここでbase64でエンコードされた文字列を読み込むのは無意味な訓練例になります。 – Amadan

0

可能な場合は、単にイメージの保存場所を作成します。画像に一意のファイル名がある場合、追跡する必要があるのはファイル名だけです。一意のファイル名がない場合は、タイムスタンプ+ランダム化機能を使用して写真に名前を付けることができます。いったん命名されたら、適切なイメージを参照するために必要なファイル名がすべて適切な場所に格納されている必要があります。 サイズの制約から、実際の画像をCSVに保存することはお勧めしません。 乾杯!

0

私は、アルゴリズムと実装の選択に大きく依存すると思います。 CSVが正しい選択であることは明らかではありません。

ご指定の要件については、Netpbm formatが気になります。イメージごとに1行を表示したい場合は、すべての数値を1行にまとめてください。ナイーブなニューラルネットワークは画像のトポロジを無視するので、それを含めるために少し高度な設定が必要です。

関連する問題