「PIC AVR 工作室」サイトの日記的なブログです。
サイトに挙げなかった他愛ないことを日記的に書き残してます。
PIC AVR 工作室 ブログ
CALENDAR
2018年12月
日
月
火
水
木
金
土
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
31
前月
翌月
Entry Archive
2024年10月
2024年09月
2024年08月
2024年07月
2024年06月
2024年05月
2024年04月
2024年03月
2024年02月
2024年01月
2023年12月
2023年11月
2023年10月
2023年09月
2023年08月
2023年07月
2023年06月
2023年05月
2023年04月
2023年03月
2023年02月
2023年01月
2022年12月
2022年11月
2022年10月
2022年09月
2022年08月
2022年07月
2022年06月
2022年05月
2022年04月
2022年03月
2022年02月
2022年01月
2021年12月
2021年11月
2021年10月
2021年09月
2021年08月
2021年07月
2021年06月
2021年05月
2021年04月
2021年03月
2021年02月
2021年01月
2020年12月
2020年11月
2020年10月
2020年09月
2020年08月
2020年07月
2020年06月
2020年05月
2020年04月
2020年03月
2020年02月
2020年01月
2019年12月
2019年11月
2019年10月
2019年09月
2019年08月
2019年07月
2019年06月
2019年05月
2019年04月
2019年03月
2019年02月
2019年01月
2018年12月
2018年11月
2018年10月
2018年09月
2018年08月
2018年07月
2018年06月
2018年05月
2018年04月
2018年03月
2018年02月
2018年01月
2017年12月
2017年11月
2017年10月
2017年09月
2017年08月
2017年07月
2017年06月
2017年05月
2017年04月
2017年03月
2017年02月
2017年01月
2016年12月
2016年11月
2016年10月
2016年09月
2016年08月
2016年07月
2016年06月
2016年05月
2016年04月
2016年03月
2016年02月
2016年01月
2015年12月
2015年11月
2015年10月
2015年09月
2015年08月
2015年07月
2015年06月
2015年05月
2015年04月
2015年03月
2015年02月
2015年01月
2014年12月
2014年11月
2014年10月
2014年09月
2014年08月
2014年07月
2014年06月
2014年05月
2014年04月
2014年03月
2014年02月
2014年01月
2013年12月
2013年11月
2013年10月
2013年09月
2013年08月
2013年07月
2013年06月
2013年05月
2013年04月
2013年03月
2013年02月
2013年01月
2012年12月
2012年11月
2012年10月
2012年09月
2012年08月
2012年07月
2012年06月
2012年05月
2012年04月
2012年03月
2012年02月
2012年01月
2011年12月
2011年11月
2011年10月
2011年09月
2011年08月
2011年07月
2011年06月
2011年05月
2011年04月
2011年03月
2011年02月
2011年01月
2010年12月
2010年11月
2010年10月
2010年09月
2010年08月
2010年07月
2010年06月
2010年05月
2010年04月
2010年03月
2010年02月
2010年01月
2009年12月
2009年11月
2009年10月
2009年09月
2009年08月
2009年07月
2009年06月
2009年05月
2009年04月
2009年03月
2009年02月
2009年01月
2008年12月
2008年11月
2008年10月
2008年09月
2008年08月
2008年07月
2008年06月
2008年05月
2008年04月
2008年03月
2008年02月
2008年01月
2007年12月
2007年11月
Recent Entry
LANケーブル交換した
MFT2024行ってきた
こないだのロボット
ロボット行ってきた
土星と月
点火プラグ交換した
こないだのロボット
潮来に行ってきた
ロボット行ってきた
88の日
Recent Comment
nekosan/
JYRUSSやってきたメモ
フルタニアン/
JYRUSSやってきたメモ
nekosan/
JYRUSSやってきたメモ
フルタニアン/
JYRUSSやってきたメモ
nekosan/
こないだのロボット
フルタニアン/
こないだのロボット
nekosan/
こないだのロボット
フルタニアン/
こないだのロボット
nekosan0/
レジ袋ホルダーを考える
フルタニアン/
レジ袋ホルダーを考える
Category
ノンジャンル
(2844)
PIC
(47)
AVR
(341)
Arduino
(446)
Raspberry Pi
(193)
mbed
(41)
ARM
(30)
ESP32
(15)
Android
(10)
OPアンプ
(125)
VHDL
(57)
PSoC
(4)
アナログ回路
(110)
クルマ
(127)
rails
(51)
本
(42)
導電塗料
(3)
Fritzing
(41)
Edison
(2)
FFT
(34)
写真
(158)
MIDI
(24)
その他日記
(11)
Python
(57)
3Dプリンタ
(124)
Bookmark
最初はgoo
goo blogトップ
スタッフブログ
My Profile
ブログID
nekosan0
自己紹介
Search
このブログ内で
ウェブ全て
Pillowのgetpixel、putpixelが遅い
Python
/
2018年12月19日
ここのところちょっとずつ進めてた、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
こんなんなっちゃって、だれが支持するんだろうなぁ?
不思議で仕方ないんだけどな。
コメント (
0
)
goo ブログ
ブログの作成・編集
gooおすすめリンク
おすすめブログ
【コメント募集中】スタッフの気になったニュース
@goo_blog
【お知らせ】
【gooブロガー・先着】dアカウント連携でdポイント2,000pt
ブログを読むだけ。毎月の訪問日数に応じてポイント進呈
【コメント募集中】goo blogスタッフの気になったニュース
gooブロガーの今日のひとこと
訪問者数に応じてdポイント最大1,000pt当たる!