複数のjpg画像(低解像度、数百~千枚)が格納されたzipファイルから画像を読み込んでarrayデータ化したいのですが、zipファイルのままデータにアクセスしていくことは難しいでしょうか。
pandasのread_csv()またはzipfileのzipファイルが読み込めることはわかったのですが、
可能であればzipファイルを解凍せずに画像データをskimageモジュールのio.k imreadで読み込んでいきたいです。
python
1 2import zipfile 3import pandas as pd 4import skimage.io 5data_=[] 6with zipfile.ZipFile(train_data_zip) as zip: 7 #zipファイルの中身を取得する 8 temp_lst=zip.namelist() 9 data_.append() 10
などを用いるとファイル名はリストで取得できるのですが、with内でtemp_lstなどに対してskimage.io.imread()を行うとエラーとなります。
やはり、事前にzipファイルを解凍して、順番にimreadで画像データを数値化して、arrayデータに落とし込んでいく手法の方が無難でしょうか。
アドバイスいただけますと幸いです。よろしくお願いします。
データフレームはエクセルで扱うような2次元の表データを扱うためのオブジェクトですが、画像データをデータフレームにするとはどういう意味でしょうか?
すみません、zipファイル内のskimageのio.imead()で画像ファイルを読み込んでarrayデータにしていきたいということです。ご指摘ありがとうございます。修正します。
画像のリストということですよね。そうであれば、今回は pandas やデータフレームは関係ないと思います。
(read_csv() は zip ファイルを読めるが、あくまで圧縮された csv ファイルが対象で画像を読み込む用途で使うものではない)
> 事前にzipファイルを解凍して、順番にimreadで画像データを数値化して、arrayデータに落とし込んでいく手法の方が無難でしょうか。
圧縮されているデータを元のデータに戻す必要があるので、解凍は必須です。
tiitoi様、ありがとうございます。zipファイルを解凍せずにアクセスしてデータを取り出していくことは難しいですね。解凍して、画像データを取り出していこうと思います。
回答1件
あなたの回答
tips
プレビュー