プレイ日記
しんいち stgf1080
やっとできたガウシアンぼかし関数。 画面端だとか透明色とかの対処、私なりに考えて作ったつもりだけど果たして良いのかどうか。。。 そして1次元ガウス係数を1次元のまま使う方法は保留中。確かに係数の掛け算の回数は減らせるけど、結局2次元テーブル数分ARYOPで足さなきゃならなくて、あんまり変わらないかなぁと。 因みに63×63で試したら4分強かかった。あとフルスクリーン(1024×1024)も結構遅かった(7×7で1分くらいだったかな)。 公開キー:4DY31EX3 実行ファイル:GAUSS_S1
8そうだね
プレイ済み
返信[1]
親投稿
moh6an moh6an
AOPMADは?
1そうだね
プレイ済み
返信[2]
親投稿
moh6an moh6an
使ってた・・・
2そうだね
プレイ済み
返信[3]
親投稿
しんいち stgf1080
今日ちょっと1次元係数のままの方法挑戦してたんですけど、なかなか上手い方法思い付かなかったんですよねぇ^^; 1次元ならx方向に係数かけた後、更にy方向に係数かければ、掛け算はx+y回だけで良いけど、色成分はx*y個分必要なのでx*y回足し算が必要。 それを単純に別々にARYOPしちゃうと#AOPMUL x+y回 + #AOPADD x*y回 なので 足し算と掛け算を一緒に行うことにして#AOPMAD x+y回 + #AOPADD x*y-(x+y)回 というのを考えてたんだけど、後者の切り分け?方法が思い付かなくて。 あと、上手いこと#AOPMAD使えたとしても、1次元と2次元でARYOPの回数は結局変わらない気がしてて(2次元だと全部(x*y回)#AOPMADなのが1次元だとx*y-(x+y)回だけ#AOPADDに置き換えられるからちょっとは軽くなるかもしれないけど)。
1そうだね
プレイ済み
返信[4]
親投稿
しんいち stgf1080
あと、RGB分離を先に済ましておく方法試してみたら結構効果ありました(^o^)。 ただ画像シフトはまだGLOAD/GSAVEのままなので、配列を直接シフトする方法これから試そうと思ってます(ついでにRINGCOPYも)。
1そうだね
プレイ済み
返信[5]
親投稿
moh6an moh6an
がんばってー♪ #ついでに関数共有できるとみんな幸せになれそう。
1そうだね
プレイ済み
返信[6]
親投稿
しんいち stgf1080
配列直接シフトにしたらまたまた結構速くなりました。公開したものに較べると2倍近く速くなったんじゃないかな(ふぅ、私にはここら辺りが限界かなぁ)。 しかし作ってはみたものの、実装どうしようかなぁ。とりあえず欲しかったのはぼかしペンみたいな機能だったんだけど、それはまたアルゴリズムちょっと変わってくるなぁ。 ぼかしGPSET、ぼかしGLINE、ぼかしGFILL、ぼかしGPAINT(が一番難しい) 野望は広がる(SBGEDにそこまで必要か?って気もするけど^^;)。
1そうだね
プレイ済み
返信[7]
親投稿
sin sin223.nnmv
暈し処理すると画像の明度が全体的に低くなるのって防ぎようが無い事なんですかね? 暈しgpaintは某香辛料さんのお絵かきツールでできました。というかこの使い方が一番実用的かもしれないです。 3*3の暈しはドットのギザギザ感を軽減するのに良さそう。疑似アンチエイリアシング?
1そうだね
プレイ済み
返信[8]
親投稿
しんいち stgf1080
確かに暈すと暗くなったように見えますね。論理的には、係数のテーブルの合計が1になっていれば暗くなることはないはずなんだけど、実数から整数への変換の際の丸め誤差で暗くなっちゃうのかな。誤差なるべく出さないためには、例えば係数を分子と分母に分けといて、分子だけ掛けて全部足したあと最後に分母で割るとか。面倒だけど。 あといつものGRP4のみたいに透明部分多いと、混ぜる時にそこケアしとかないと透明の黒と混ざって暗くなっちゃう。 某更新料さん暈しGPAINT作られてましたか。これは楽しみ(^o^)早くパクリたいなぁ(^^ゞ 私が暈しにハマったのがまさにギザギザきっかけ。手動アンチエイリアシングは苦行過ぎ。 画像は左上オリジナル、右上15×15ガウシアン暈し、左下3×3を5回ブロック暈し、右下3×3を5回ガウシアン暈し。白背景で。3x3数回に分けてもそれなりに見える(速度はその方が速い)。
1そうだね
プレイ済み
返信[9]
親投稿
MIKI ifconfig
フィルタの係数合計 > 1 ならフィルタかけるたびに明るくなります。 フィルタの係数合計 < 1 ならフィルタかけるたびに暗くなります。 合計==1 ならフィルタ前後で全画素画値の合計は不変。 が、ぼかしフィルタの場合、明るいピークくらいピークがならされるので、コントラストは低くなります。のっぺりする。 コントラストを再調整すればいいと思う。 フィルタ一個でなんでも望み通りにしようとは考えないほうがいいでしょう。 あくまでもツールの一つ。
1そうだね
未プレイ
返信[10]
親投稿
しんいち stgf1080
係数の分子と分母分けて誤差少なくしてみようと試したら、ヘンチクリンなフィルターに^^; RGB関係の配列全部実数型にしたらアカンみたいね。そしてやっぱり実数型配列BIG遅いようだし(倍近くの処理時間になっちゃった)。 さぁ、限界と思ってた速度も、実はRINGCOPY使える奴だったことが分かってまた少し速くできました。前に、RINGCOPYはコピー先/コピー元同じだとダメって言ったことあったんだけど、実はコピー先/コピー元同じでも大丈夫みたい。リファレンスやヘルプのマルチチャンネル云々がよく分からなくて誤解してました(今でもあの文章自体の意味は分からんけど)。 RINGCOPYを画像配列に対して有効に使うには2次元で定義した方が良いんだけど、その際、オフセット値に指定できるのは低次元側の要素数(G%[Y,X]ならX)の範囲である必要がありました。 #もうこれ以上いじるとこないはずだ。
1そうだね
プレイ済み
返信[11]
親投稿
moh6an moh6an
RGB分離のときにARYOPで擬似的にビットシフトさせているだけなので、実数型にしちゃうとうまく上位nbitを抽出できないのです。
1そうだね
プレイ済み
返信[12]
親投稿
しんいち stgf1080
適当に全部の配列を実数型にするんじゃなく、必要なのだけ実数型にして、分子分母別々誤差最小作戦やってみたら、あまり暗くならないフィルターができました(^o^)ただちょっと遅い。 右上が従来。右下が誤差最小作戦。 #関数完成したと思っても、次々と改善ネタが #湧き出てきちゃうなぁ^^;
1そうだね
プレイ済み
返信[13]
親投稿
しんいち stgf1080
ようし、現時点で改善ネタはもう尽きたはずだ。ということで、最新版公開。 公開キー:N3S8N5HS ファイル:SUFBLR01_S1 詳しいことは3号のmoh6anさんの研究会その2の方で説明しようと思いますので、興味のある方はそちらをのぞいてみてください。
1そうだね
プレイ済み
返信[14]
親投稿
しゅん SARSS1009
オーーーー
2そうだね
未プレイ