Python 学習:PIL Image to Numpy array(recipe-577591)

2014-05-09 :  PCクリニック
本文の前に、
-・・・ -・-
現時点での、blogramのランクインカテゴリは、
2、3、2、0、1、 0、1、0、0、0(39)で、換算ポイント 59pt 。
昨日「インド」にランクイン。933位(0.01bg)
「Mozilla Firefox」今朝方、3位から5位にダウン!
「Linux」も、6位から7位にダウン。
・-・ - -・

さて、本文。

2ヶ月ほど前(2014-03-24)の記事:
Python 学習:goto ( decorator ) 発見
で知ったサイト「Python recipe」
  ・・・・・
  この「Python recipe」って?
  「Active Python」や「Active Perl」を出している、
  「ActiveState」社のサイト内にあって、
  この場合は「Python」だが、各言語の“レシピ”を提供しているページ。
  これもブックマークしました。
  ・・・・・
この時は、576944 番でした。

その後、
先月初め(2014-04-02)の、
Python 学習:Solver(Pythonレシピ)
で書いたのは、303396 番。


それで、今回は、
先日(2014-05-06)の記事
Python 学習:Perl より遅い?
で書いた方式に比べ、
処理が速くなる方法を見つけた。


レシピ 577591 番です。

Conversion of PIL Image and numpy array (Python recipe)

本文のコードよりも、
「SQK」さんのコメント:
  Alternatively, to get a numpy array from an image use:
機械翻訳では、
  また、numpy を取得するイメージから配列を使用してください。
まあ、

  別法として、画像を numpy array を使って読み込む

と訳した方がいいかナ?


早速書き直してみた。

# ========== 前回の方式 ==========
from PIL mport Image
import struct

# ---------- ループの中 ----------
img = Image.open( 各ファイル )
w = img.getdata(); v = ''
for n in range(10000):
v += struct.pack( 'B', w[n] )
# 10000 バイト分出力


# ========== 改訂版(レシピ方式) =====
from PIL mport Image
import numpy as np

# ---------- ループの中 -------------
img = Image.open( 各ファイル )
v = np.array( img.getdata(), np.uint8 )
# 10000 バイト分出力



結果、前回
  0.5~0.6 秒( 544mS )
だったところが、
今回は、
  約 0.2 秒( 198mS )
と、2.5倍速となった。

実際の時間短縮には、
“struct.pack”を止めた方が効いていると思われるが、
1文で、Numpy の配列に出来るところが便利ですね。


本日はここまで。
更に Python 学習は続く。



見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


140317
関連記事
スポンサーサイト

コメントの投稿

管理者にだけ表示を許可する

おきてがみ/blogram
blogram投票ボタン



おきてがみ

最新記事
カレンダー
05 | 2017/06 | 07
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 -
月別アーカイブ
カテゴリ
最新コメント
検索フォーム
リンク
プロフィール

<紙>

Author:<紙>
ようこそ。
「パソコンヲタクの雑記帳」
もろもろなことを綴っています。
パソコン ヲタクってねくら?
画像は kami でなく kani です。

カウンター(fc2、i2i) /Google Analytics


i2i(from 2010-08-24)
Total =
Today  =  
Yesterday=
アンチエイジング

Google Analytics
ブックマーク