0

ビットマップ イメージ コンテキストがあり、これがぼやけて見えるようにしたいと考えています。私が考えることができる最善のことはガウスアルゴリズムですが、この種のガウスぼかしアルゴリズムがどのように見えるかについてはよくわかりませんか? これに関する良いチュートリアルや例を知っていますか? 言語固有の API をあまり使用せずにすべて手作業で行う場合、言語はそれほど重要ではありません。つまり、ココアでは、幸運な人はそれについて考える必要はありません。すでに存在する Imagefilter を使用するだけです。しかし、cocoa-touch (objective-c、iPhone OS) にはこのようなものはありません。

4

3 に答える 3

4

これは実際には非常に簡単です。フィルタパターン(フィルタカーネルとも呼ばれます)(係数を持つ(小さな)長方形配列)があり、画像とパターンの畳み込みを計算するだけです。

for y = 1 to ImageHeight
  for x = 1 to ImageWidth
    newValue = 0
    for j = 1 to PatternHeight
      for i = 1 to PatternWidth
        newValue += OldImage[x-PatternWidth/2+i,y-PatternHeight/2+j] * Pattern[i,j]
    NewImage[x,y] = newValue

パターンは、2次元のガウス曲線またはその他の任意のフィルターパターンです。フィルタパターンは部分的に画像の外側になるため、画像の端に注意する必要があります。このピクセルはバルクであると想定するか、画像のミラーバージョンを使用するか、または合理的と思われるものを使用することができます。

最後に、フーリエ変換を使用して畳み込みを計算するより高速な方法がありますが、最初のテストにはこの単純なバージョンで十分です。

于 2009-08-25T08:44:42.510 に答える
1

画像処理に最適な場所はTHISです。ここで matlab コードを取得できます。
そして、この Wolfram デモは、手動で行うことについての疑問を解消するはずです。

あまり多くのことを学びたくない場合は、PIL(Python Imaging Library)を学んでください。

ここ」はまさにあなたが必要とするものです。

上記のリンクからコピーされたコード:

import ImageFilter

def filterBlur(im):

    im1 = im.filter(ImageFilter.BLUR)

    im1.save("BLUR" + ext)

filterBlur(im1)
于 2009-08-25T08:37:02.947 に答える
1

ウィキペディアの記事には、主題に関する標準的な情報に加えて、サンプル マトリックスがあります。

于 2009-08-25T08:31:41.243 に答える