午後わてんのブログ

ベランダ菜園とWindows用アプリ作成(WPFとC#)

ヒストグラムの表示が速くなったPixtack紫陽花1.3.5.73

ヒストグラムの表示で
検索するpixelを1/4に間引いて高速化
RGB個別の最大値ではなくRGB全体の最大値で表示するようにしてみた

f:id:gogowaten:20191014151550p:plain

1x1と表現しているものは間引きをしないですべてのpixelを調べる昨日と同じ
2x2は縦横1個飛ばし、2つに1つを検査で今回採用したもの
3x3は縦横2個飛ばしなので全体の1/9を検査
4x4は1/16、10x10は1/100になる
時間はRGBだけのもので輝度の計算時間は入っていない
昨日まではRGBの計算を3回に分けていたけど1回で済ませるようにして
SetPixelで画像を作っていたのをLockBitsに変更
これだけで1秒以上かかっていたのが0.467秒になった
そこから検索するpixelを単純に間引いてどうなるかを見た
検索数に対してリニアに時間が対応していないのは検索以外の処理が
それなりに時間が掛かるからかな
画像の大きさによるんだろうけど今回は2x2で決め打ちにしている
 
他のアプリのヒストグラムとくらべてみた

f:id:gogowaten:20191014151613p:plain

JTrimはRGB別々の最大値で計算しているみたい
輝度はずいぶん違う形になっているのでNTSC以外を使っているのかな
AviUtlはどの色も上限に達しているものがない、どうやっているんだろう
 
 

f:id:gogowaten:20191014151646p:plain

今度は赤から黒へのグラデーション画像の場合
今回のよりも昨日のほうがいい感じかなあ
AviUtlは独特だなあ、真似したいけどできない
 
 

f:id:gogowaten:20191014151703p:plain

時間計測↑昨日↓今回

f:id:gogowaten:20191014151717p:plain

下の実際の処理ピクセル数は間引いているので3145728/4で80万くらい
昨日よりだいぶ速くなって満足
といっても他のアプリはもっと速いんだよなあ、謎の技術だわ
 
ダウンロード
ファイル名 Pixtack_20140417.zip
Pixtack紫陽花 - OneDrive
 
 
 関連記事
2014/05/03は16日後