私はビットマップイメージコンテキストを持っており、これをぼやけて見せたいと思っています。私が考えることができる最も良いことは、ガウス・アルゴリズムですが、この種のガウス・ブラー・アルゴリズムのように見えますか?あなたはこれに関する良いチュートリアルや例を知っていますか?言語固有のAPIをあまり使用しなくても手作業で済ませれば、言語はそれほど重要ではありません。私。ココアでは、幸運な人はそれについて考える必要はありません、彼らはすでにそこにあるImagefilterを使うだけです。しかし、私はココアタッチでこのようなことはしません(objective-c、iPhone OS)。ぼかしガウスアルゴリズムはどのように見えますか?実装例がありますか?
答えて
これは実際には非常に簡単です。フィルタパターン(フィルタカーネルとも呼ばれます) - 係数を持つ(小さな)長方形の配列 - があり、画像とパターンのconvolutionを計算するだけです。
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次元のガウスカーブまたは好きなフィルタパターンです。フィルタパターンは画像の外側に部分的に存在するため、画像の端に注意する必要があります。このピクセルがbalckであると仮定するか、イメージのミラー化されたバージョンを使用するか、それとも妥当であるかは分かります。
最後に、フーリエ変換を使用して畳み込みを計算するより高速な方法がありますが、この単純なバージョンは最初のテストで十分であるはずです。
Wikipedia articleには、対象に関するいくつかの標準情報に加えてサンプルマトリックスがあります。
この7 * 7マトリックスを4 * 4マトリックスのココアタッチCALayer変換マトリックスに移植する方法はありますか? –
No.変換マトリックスは、座標変換(並進、回転など)を行うためのものです。畳み込み行列(ピクセル値を混合するために使用される)とは関係ありません。 –
画像処理に最適な場所はTHISです。 MATLABコードがそこに得られます。
そしてthis Wolfram demoは手作業による疑問を解決するはずです。
あなたがあまりにも多くのことを学びたくなければ、PIL(Python Imaging Library)を学んでください。
「Here」が必要なものです。上記のリンクからコピー
コード:
import ImageFilter
def filterBlur(im):
im1 = im.filter(ImageFilter.BLUR)
im1.save("BLUR" + ext)
filterBlur(im1)
PILは本当にiPhone上で動作しますか? (私はiPhoneを持っていない、私はちょうど興味がある) – Niki
私は知らない。私はiPhoneを持っていません。 :-D –
iPhoneは対話型です。私はそのpythonのものについてはわからないが、私はそれがそこに実行されないと言うだろう。私が間違っているなら私を訂正してください。 –
- 1. javaにLINQのような実装がありますか?
- 2. Rubyの実行スタックはどのように見えますか?
- 3. C#:どのようにToString()を実装する必要がありますか?
- 4. AppHarborはどのように機能しますか?オープンソースの実装はありますか?
- 5. FileNotFoundError例外を実装する必要がありますか?
- 6. `shared_lock_guard`はありますか?もしそうでなければ、どのように見えますか?
- 7. 反応容器にjsPdfのhtml2pdfを実装したいと思います。どのように実装できますか?どのような例ですか?
- 8. SqlGeometryBuilderの実装はありますか?
- 9. iPhone - プロトコルメソッドが実装されているかどうかはどのように分かりますか?
- 10. Clojureオブジェクトに実装されたプロトコルはどのようにして見つかりますか?
- 11. `[" length "]`はどのように動作しますか?例えば
- 12. Chromeのジオロケーションプロンプトダイアログは、どのように実装しますか?
- 13. LAMPプロジェクトの "ワンステップビルド"はどのように実装しますか?
- 14. Genieではどのようにスイッチインターフェイスが見えますか?
- 15. 汎用ファクトリインターフェイスはどのように実装しますか?
- 16. React Native:DatePickerAndroidはどのように実装しますか?
- 17. UIAccessibilityプロトコルはどのように実装しますか?
- 18. `prepareForReuse`はどのように実装しますか?
- 19. socket.ioは認証をどのように実装しますか
- 20. パンチオートプレフィクサープリプロセッサーはどのように実装しますか?
- 21. Redux Thunkはどのように実装していますか
- 22. 錆発生(例:num_cpus)はどのように実装されていますか?
- 23. tf.image.resize_bicubicの実装はどこにありますか?
- 24. Typescriptノードモジュールの実装はどこにありますか
- 25. Luceneのワイルドカード実装はどこにありますか?
- 26. corbaの実装はどこにありますか
- 27. Java EL 3.0の実装はどこにありますか
- 28. RのGlicko-2実装はどこにありますか?
- 29. ISO SchematronバリデータのJava実装はどこにありますか?
- 30. CSS:ボタンのように見えるようにチェックボックスをつけましたが、ホバーはありますか?
私はこの例に従っていますが、次の方法でピクセル画像にアクセスします: 'pImg [i * iWidth + j] = currentPixel'' i'と 'j'はネストされたforループの変数です。パターンを使って 'newValue + = OldImage [x-PatternWidth/2 + i、y-PatternHeight/2 + j] * Pattern [i、j]'と 'NewImage [x、y] = newValue'という行をどのように変更すればいいですか?私はピクセルを読み取る方法? – evanhaus