ここのところちょっとずつ進めてた、Python、Pillow、
tkinterでGUIツール作るという話をちょっと進める。
いきなりGUIツールに仕上げるより、まずはCLIで動作を
確認しておくほうが手っ取り早そうだなと思って、
主にCLIだけで処理させてみる。
まず、640×480ドットの小さい画像を入力に使って、
Pillowライブラリのgetpixel、putpixel通して、単純に
入力した画像を1ピクセルずつ新しい画像エリアに
コピーしていって、結果的に同じ画像ファイルを出力
するっていう、すごい単純な処理を行ってみた。
…ものすごい遅い。こんな小さな画像ファイルなのに、
コピーだけで4秒くらい掛かる。(実測)
イツキのハチゴーより遅い。
調べてみると、getpixel、putpixelは、死ぬほど遅い
らしい。しかも、こんな単純なコピー処理したいわけじゃ
なく、1ドットにつき周囲のドットを参照しながら、
平均値よりも大きいか小さいかで判断したいので、処理
時間は2桁以上は遅くなるんだよな。
困ったな。他のライブラリ使うのもいやだしな。ちょっと
別の抜け道を探そうと考えてみる。
ピクセルへのアクセスが遅いのなら、そのアクセス回数
を減らす方向で考える。
一旦、全ピクセルのうち、処理で使う緑プレーンだけを
読み出して、二次配列(リストのリスト)に溜め込んで
おくことにする。配列への読み書きなら、もうちょっと
早いだろうと。
で、ためしに、1000×1000マス分の配列を用意して、
そいつを参照しながら平均値計算を行って、出力先には
仕方ないのでpitpixelで書き込む。
実際に処理を動かしてみると、1000×1000ドットで4分ほど
掛かっちゃう。
うーーーーん。すごく単純に処理を組んだので、1ドットの
周辺の平均値を計算するのに、毎回441ドット分の積数を
計算してからドット数で割り算。処理内容的にはすごく無駄
なせいもあって、すごい遅い。簡単に一桁は早く出来そう
ではあるものの、処理内容的にはどんどん面倒な感じに
なっていっちゃう。
しかも、平均値を求める範囲を、仮置きで周囲の21×21ドット
にしてるので、出てきた画像データを眺めると、ちょっと
残念な感じになっちゃう。
(文字や図は思ったとおりに浮き出るんだけど、文字も図も
描かれてない部分は、ノイズレベルの濃淡を拾って無理やり
図にしちゃう…)
まぁ、残念な感じになってる部分は、もともとそうなるだろう
と想像していたところなんだけど、その辺の弁別値をもう少し
なんとか工夫しないと、きれいな画像データは得られない
よなぁ。
それ以上に、処理時間を短くしないと、まともに使えない…
もしかして、メモリの食い方がおかしな状態になってて、
仮想メモリ食いすぎてスワップしてたりする?とか疑って、
vmstatでメモリ使用状況眺めつつ、HDDのアクセスランプ
もみながら動かしてみても、そんな無駄なメモリアクセスは
してないみたい。大丈夫みたいだな。
配列(リスト)のアクセスでこんなに時間が掛かるなら、
これを他のピクセル読み書き方法に換えたとしても、
根本的な処理時間短縮には至らないよなぁ…
もうちょっと、処理内容の工夫を考えないといけないな。
まずは、平均値を、毎回21×21ドット全部の積数を計算
しなおしているのは無駄なので、そこに梃入れするかな。
あぁ、ちょっと頭が痛い話だな。こまったな。
そもそも、各種画像ソフトのガウスボケって、どういう計算
してるんだろうな?あれよりもずっと簡単な計算なはず
なんだけどな。
https://headlines.yahoo.co.jp/videonews/ann?a=20181218-00000019-ann-bus_all
5パーセントポイント還元に「穴」っていうならまだしも、
「不正取得」はおかしいよな。合法だもん。
それを不正っていうなら、
「法律に基づいて適法に行っています」
って言ってた政治家先生とか、役所の偉い人たちも不正行為
をしていることになるよな。
単純なダブルスタンダード。
https://kuruma-news.jp/post/120059
マツダ、スズキはMT車いっぱい出してていいよねぇ。
ホンダは、面白いクルマ、なくなっちゃったんだよな。
https://twitter.com/dameningen1gou/status/1074551103117656065
MKS単位系じゃないなぁ。
https://twitter.com/mt3678mt/status/1074425446731735040
もう、これシステムとして破綻してるよな。
こんな安全じゃないシステムが個人情報扱ってるの、
やめちゃえば良いのに。
https://twitter.com/knife9000/status/1074591539651764226
類似点。
っていうか、もともとまねしてるからだろうけどな。
オリジナルを考えるほどの知恵はなさそうだからな。
で、鳴り物入りは全敗。
https://www.asahi.com/articles/ASLDK5V6TLDKULFA03D.html
こんなんなっちゃって、だれが支持するんだろうなぁ?
不思議で仕方ないんだけどな。
|