###前提・実現したいこと
png画像を読み込んで画素値の配列を作成したいのですが、思うように出来ずご助力いただきたいです。png画像は全て228×228で、所定のフォルダに10枚入っています。現在は下記のように読み込もうとしています。
files = glob.glob("C:\images\*.png") dataset = [] for file in files: img = cv2.imread(file) img_gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY) array = [] for height in range(228): for width in range(228): array.append(img_gray[height][width]) dataset.append(array) df = pd.Series(dataset)
理想としては10×51984の行列を作りたいのですが、これだとおかしな形になります。
(df.shapeで形を確認すると、(51984,)という形になっているようです。)
この後、
df.to_csv('xxx.txt', index=False, header=False, sep=" ")
でtxt形式で画素値の配列を保存したいと考えています。
202 195 184 ... 17 0 0 208 207 204 ... 12 4 0 ... ... ... 25 25 25 25 25... 100
のような、画素値だけが並んだtxtファイルにしたいです。
現時点では元の2次元配列が出来ていないので、保存も思うようにできていないです。
png画像を順次読み込んでいる部分はうまくいっていると考えています。append以降が良くないっぽい事は分かるのですが、どのように直したらいいかが分かりません。
flatten()関数も使ってみましたが、何故かtxtにしたら途中が短縮された、
"[202 195 184 ..., 17 0 0]" "[208 207 204 ..., 12 4 0]"
という形で出てきました。謎です。"[などの部品も消えてほしいのですが、出てきてしまいました。
解決策を教えていただけますと幸いです。
よろしくお願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/01/09 06:51