主にプログラミングに関して。Python, .NET Framework(C#), JavaScript, その他いくらか。
記事にあるサンプルやコードは要検証。使用に際しては責任を負いかねます

pycairoでグレースケール処理というのを、forループを使わずに

                
tags:
http://kyle-in-jp.blogspot.com/2009/04/pycairoo.html
↑でpycairoで画像をグレースケール処理する方法を見つけたのだけど、
forループが好きでないから途中を書き換えてみた。
書き換えはできたんだけど、実行時間が1.5倍弱と遅くなってしまった。
コードを短くまとめたら汚くて読みづらいし。ふひぃ。

*************************************書き換え部分
for ip in range(0, surface.get_stride() * surface.get_height(), 4):
  ia[ip+0] = ia[ip+1] = ia[ip+2] = \
  chr((ord(ia[ip+0]) + ord(ia[ip+1]) + ord(ia[ip+2]))/3)
*************************************

*************************************書き換え後
ia[0::4]=ia[1::4]=ia[2::4]=''.join(map(chr,numpy.mean((map(ord,ia[0::4]),map(ord,ia[1::4]),map(ord,ia[2::4])), axis=0)))
*************************************
スポンサーサイト



プロフィール

h

Author:h

最新記事
リンク
作ったものなど
月別アーカイブ
カテゴリ
タグリスト

検索フォーム
Amazon