2

こんにちは、画像の境界線やさまざまな色のような画像に何らかの効果を実装しようとしていますが、今はこのようなぼかし画像を作成しようとしています

ここに画像の説明を入力

画像の中央部分がはっきりと見え、他の部分がぼやけています

聞くのは、私が参照するリンクの魔女です http://www.jhlabs.com/ip/filters/VariableBlurFilter.html

しかし、この画像とは異なります(Javaのこのlibなので、BufferdImageをビットマップに変換しますが、今は頭から離れています)誰もこれで私を助けることができます..

4

2 に答える 2

4

返事が遅れて申し訳ありません。今週末、スタックオーバーフローをチェックするのを忘れていました。

とにかく、私がすべきことは次のようなことです (グレースケールに簡略化されていますが、RGB で動作するように簡単に作成する必要があります)。

oim = original image
xc, yc = center point
d = distance from center point for in-focus
fval = zeros, matrix size of oim
max_blur = maximum blur radius
for all pixels (xp,yp) in oim
    dist = sqrt((xp-xc)^2+(yp-yc)^2)
    dist = dist-d // we only care about the area beyond the clear area
    if dist>0
       blur = dist
    end
    if blur>max_blur
       blur = max_blur // this can also be scaled or whatever works for your needs
    end
    blur = round(blur)
    fval(xp,yp) = blur
end
nim = oim
for b=1:max_blur
    blurred = blur_function(oim,b)
    for all pixels (xp,yp) in fval
       if fval(xp,yp) == b
          nim(xp,yp) = blurred(xp,yp)
       end
     end
end

nim は新しいイメージになりました

つまり、基本的にここで行われるのは、特定のピクセルをどれだけぼかすかを示す一種のルックアップ テーブルを最初に作成することです。フォーカス値は、クリア エリアからの各ピクセルの距離の関数です。これが行列 fval です。次に、画像を複数回ぼかし、そのたびに、ぼかした画像からの新しいピクセル データで新しい画像を更新し、その焦点ぼけレベルを更新する場合にのみ、特定のピクセルを更新します。

blur_function は何でもかまいません。これを自分でテストしたとき、MatLab で平均的なぼかしを使用しました。

お役に立てれば!

于 2012-10-22T15:31:55.567 に答える
2

次のリンクから JHLabs Library for Android をダウンロードします。これらのライブラリは Android で動作します。

于 2013-03-05T19:34:01.480 に答える