タグ

algorithmに関するsobataroのブックマーク (66)

  • 電気のデジタル博物館:三つの概形特徴を用いた手書き漢字の分類

    sobataro
    sobataro 2009/06/14
    文字認識
  • パターン認識の前処理に必要な二値画像の細線化

    はじめに 細線化はThinningやSkeletonizationと呼ばれ、二値画像(白と黒の色だけで表現された2階調の画像)を幅1ピクセルの線画像に変換する処理です。線が途中で切れたり、孔が開いたりしてはいけません。得られた線は、元の図形の幅の中心にくることが望まれます。 エッジ検出によって得られた画像は、元の画像の変化が比較的緩やかで広範囲な場合には、幅が広くなってしまいます。エッジ検出の閾値を高くすると幅は狭くなりますが、緩やかな変化を見逃してしまいます。したがって、閾値を低く選んで、幅広くエッジ部分を出させ、その後に細線化処理を行って、文字認識やパターン認識に使うことが多いのです。 アプレットを見る 対象読者 画像処理に関心があり、パターン認識の前処理を学習したい人。 必要な環境 J2SE 5.0を使っていますが、それより若干古いバージョンでも大丈夫です。CPUパワーは、大きい方が

    パターン認識の前処理に必要な二値画像の細線化
    sobataro
    sobataro 2009/05/01
    パタン認識 手書き文字認識 細線化 骨格を抽出
  • 石立 喬について

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    石立 喬について
    sobataro
    sobataro 2009/05/01
    パタン認識 手書き文字認識
  • ベイズを学びたい人におすすめのサイト - download_takeshi’s diary

    ベイジアンフィルタとかベイズ理論とかを勉強するにあたって、最初はなんだかよくわからないと思うので、 そんな人にお勧めのサイトを書き残しておきます。 @IT スパム対策の基技術解説(前編)綱引きに蛇口当てゲーム?!楽しく学ぶベイズフィルターの仕組み http://www.atmarkit.co.jp/fsecurity/special/107bayes/bayes01.html いくつかの絵でわかりやすく解説してあります。 自分がしるかぎり、最もわかりやすく親切に解説してる記事です。数学とかさっぱりわからない人はまずここから読み始めるといいでしょう。 茨城大学情報工学科の教授のページから http://jubilo.cis.ibaraki.ac.jp/~isemba/KAKURITU/221.pdf PDFですが、これもわかりやすくまとまってます。 初心者でも理解しやすいし例題がいくつかあ

    ベイズを学びたい人におすすめのサイト - download_takeshi’s diary
  • 単純で正しそうなものが正しいとは限らない - Radium Software

    Coding Horror: The Danger of Naïveté 配列の中身をランダムな順序にシャッフルするコードを書きたい。単純でいいから分かりやすくて間違いの無いコードを書こう。例えば,こんな感じに…… for (int i = 0; i < cards.Length; i++) { int n = rand.Next(cards.Length); Swap(ref cards[i], ref cards[n]); } これは単純で分かりやすい! でも残念! このコードは間違っている。シャッフル後の順序に偏りが出てしまう。正解はこちら。 for (int i = cards.Length - 1; i > 0; i--) { int n = rand.Next(i + 1); Swap(ref cards[i], ref cards[n]); } ぱっと見て違いが分かる? イン

    単純で正しそうなものが正しいとは限らない - Radium Software
  • Racanhack コード解説

    図目次1-1. すべての部屋が通路でつながっていない例1-2. まずは全体がrect[0]です。1-3. rect[0]を、分割します。rect[0]とrect[1]ができました。1-4. rect[0]を、分割します。rect[0]とrect[2]ができました。1-5. rect[2]を、分割します。rect[2]とrect[3]ができました。1-6. 各区画にひとつずつ部屋を作ります。1-7. 各分割線ごとに部屋を通路でつなぎます。1-8. まずは全体がrect[0]です。1-9. rect[0]を、横に分割します。rect[0]とrect[1]ができました。1-10. rect[0]を、横に分割します。rect[0]とrect[2]ができました。1-11. rect[2]をまたぐことになり、困ります。1-12. このように賢く分割するようにしてもいいです。2-1. タスクのイメージ。