タグ

Algorithmに関するminodiskのブックマーク (22)

  • https://reingold.co/tidier-drawings.pdf

    minodisk
    minodisk 2019/12/19
    Reingold-Tilford "tidy" Tree Diagram Algorithm
  • Topological sorting - Wikipedia

    "Dependency resolution" redirects here. For other uses, see Dependency (disambiguation). In computer science, a topological sort or topological ordering of a directed graph is a linear ordering of its vertices such that for every directed edge (u,v) from vertex u to vertex v, u comes before v in the ordering. For instance, the vertices of the graph may represent tasks to be performed, and the edge

    Topological sorting - Wikipedia
  • Tree traversal - Wikipedia

    Pre-order (node visited at position red ●): F, B, A, D, C, E, G, I, H;In-order (node visited at position green ●): A, B, C, D, E, F, G, H, I;Post-order (node visited at position blue ●): A, C, E, D, B, H, I, G, F. In depth-first search (DFS), the search tree is deepened as much as possible before going to the next sibling. To traverse binary trees with depth-first search, perform the following ope

    Tree traversal - Wikipedia
  • Drawing Presentable Trees

    Drawing Presentable Trees by Bill Mill When I needed to draw some trees for a project I was doing, I assumed that there would be a classic, easy algorithm for drawing neat trees. What I found instead was much more interesting: not only is tree layout an NP-complete problem1, but there is a long and interesting history behind tree-drawing algorithms. I will use the history of tree drawing algorithm

  • Alpha Blending の2種類の算出方法と使い分け – NEAREAL

    透明な色の重なりを考慮して最終的な色を決定する処理を、アルファブレンディングと呼びます。 このアルファブレンディングですが、ペイントソフト(DTP)と CGゲームでは算出方法が異なることがあります。 環境によって計算方法は異なるので必ず異なるわけではありませんが、アーティストはよく注意して使う必要があります。 計算方法の解説とその算出に当たって 計算とその表記にあたって次のことを定義しておきます。 また値に関して、ゲームCG プログラミングなどでは RGBA 値が 0 ~ 1 で扱われることがありますが、ここでは分かりやすさのために 0 ~ 255 とします。 C R,G,B 色成分をまとめて表す。 Color の略称。 A 透過値を表す。 Alpha の略称。 係数d 重ねられる色のパラメータであることを表す。 Destination の略称。 係数s 重ねる色のパラメータである

    Alpha Blending の2種類の算出方法と使い分け – NEAREAL
  • http://www.technotype.net/hugo.elias/models/m_perlin.html

  • t-pot『バイラテラルフィルタ』

    ■はじめに mdiapp さんの「人生やりなおし機が欲しい」 で、 「バイラテラルフィルターって何?」ってのがあって、見てみると速攻で実装できそうだったので作ってみました。 画像処理実験室の記事を参考にさせていただいています。 今回のプログラムは、次のものです。 src.zip (バイラテラルフィルタ:Microsoft DirectX 9.0 SDK (August 2006), vs_1_1, ps_2_0) まぁ、いつものように適当にファイルが入っています。 大事な部分だけを抜粋すると、次のファイルだけに注目すればいいことになります。 他にも、実行ファイル、リソースファイル、プロジェクトファイルが入っています。 ■Bilateral Filterとは? Bilateral Filter は1988 年にTomashi とManduchi により提案されたエッジ保持平滑化フィルタで、

    minodisk
    minodisk 2011/07/07
    バイラテラルフィルタ 式
  • 【レポート】CEDEC 2008 - コンピュータが知性でコンテンツを自動生成--プロシージャル技術とは(後編) (1) プロシージャル・テクスチャの"種"はノイズにある? | パソコン | マイコミ

    コンピュータサイエンスの研究テーマとして始まったプロシージャル技術は、今、ゲーム開発シーンにおいて、要求される膨大なコンテンツ作成を効率よく行う技術としても実用化が進められつつある。 コンピュータに実装した形式化された知性で、人間に変わってコンテンツを作るプロシージャル技術の最新動向を、CEDEC 2008で行われた北陸先端科学技術大学院大学の宮田一乘教授の講演「プロシージャル技術の動向」から読み解いていく。 北陸先端科学技術大学院大学の宮田一乘教授 プロシージャル・テクスチャの"種"はノイズにある? 3Dグラフィックス(CG)制作やゲームグラフィックス開発などで制作負荷が高いものにテクスチャ素材の作成が挙げられる。 屋外のオープンフィールドシーンが主体のゲームであれば地面の模様、道路のアスファルトの模様、石壁の模様、樹木の皮など、挙げればきりがないほどの素材を作らなければならな

    minodisk
    minodisk 2011/07/07
    プロシージャル 後編
  • 【レポート】CEDEC 2008 - コンピュータが知性でコンテンツを自動生成--プロシージャル技術とは(前編) (1) 最新プロシージャル技術とその動向 | パソコン | マイコミジャーナル

    テレビやディスプレイなどの映像表示機器がハイビジョン化し、PCゲーム機によって映し出される映像に対し、ユーザーはとてつもなく高い期待値を持つようになってきている。 こうした時勢におけるゲーム開発、コンピュータベースのアニメーションなどのCG制作おいて、昨今、課題となってきているのは素材作成に関わるコストと制作負荷の増加問題だ。ユーザーの目が肥え、ユーザーの映像表示機器も高品位化しているため、いまや、この部分にごまかしは利かなくなっている。かといって開発に使える予算は以前からそうは変わらない。 そこで、注目されてきているのは、高品位な素材群を人間の手でゼロから作るのではなく、コンピュータの力だけで作れないか。あるいはそれがダメならばコンピュータの性能で制作をアシストしてもらって開発効率を上げられないか……そんな技術を業界は求め始めてきている。いわば「コンテンツ制作の自動化」、あるいは「

    minodisk
    minodisk 2011/07/07
    プロシージャル 前編
  • メディアンフィルタ 画像処理ソリューション

    平滑化フィルタでは注目画素の周辺画素の輝度値を平均し、ノイズを除去していましたが、画像の輪郭もボケてしまう欠点がありました。それに対し、メディアンフィルタでは周辺輝度値の大きさを順に並べ、メディアン(中央値)を注目画素に置き換えることでノイズを除去します。 特に周辺画素の輝度値よりも大きく異なるノイズ(ゴマ塩ノイズとかスパイクノイズという)を除去するのに効果を発揮します。

    minodisk
    minodisk 2011/07/07
    メディアンフィルタ5x5サンプル
  • メディアンフィルタによるノイズ除去(平滑化)

    メディアンフィルタとは、3*3など一定の領域のピクセルを明度などでソートしその中央値のピクセルの色を領域の中心のピクセルに設定する画像処理です。隣接領域の中から「無難」な色を選択して設定することで、ノイズ除去などの効果を得ることができます。 メディアンフィルタのアルゴリズム メディアンフィルタ(median filter)では、ピクセルの色を決める時、以下のような処理を行います。 周囲3*3ピクセルについて、それぞれの情報(明度など)を配列に格納 配列をソート 配列の中央の値(を持つピクセルの値、配列の要素数が9なら5番目)をピクセルの値とする このアルゴリズムでは、周辺画素との置換(移動)が生じますが、加算・平均化など画素の値そのものを直接変更する処理は行われません。 メディアンフィルタ処理で期待される主な効果は、ノイズ除去です。画像内の「極端なピクセル」が取り除かれ(周囲と大きく異なる

    minodisk
    minodisk 2011/07/07
    メディアンフィルタの式
  • アンシャープマスキング(鮮鋭化フィルタ) 画像処理ソリューション

    【処理アルゴリズム】 元画像データ ↓ 元画像データの平滑化処理を行い、元画像から平滑化データを差し引きます。 ↓ ↓ 差し引いた分を元画像に上乗せします。 ↓ この処理により、平滑化処理でボヤけてしまう分だけ、逆に輪郭をくっきりさせる事ができます。 この処理をカーネルで表現すると となります。 kは任意レートで、値が大きいほど、輪郭が鮮明になる効果が高くなります。 (後半の元画像から平滑化画像を引いている部分の処理はラプラシアンフィルタ と呼ばれます。) 今回は3×3のマスクサイズを例にとって紹介しましたが、マスクサイズを大きくすると マスクサイズよりも小さなパターンを強調する効果を得る事もできます。

    minodisk
    minodisk 2011/07/06
    アンシャープマスク
  • TEOライブラリによる画像処理プログラミングガイド

    アルゴリズム編 「構造編」も終りTEOプログラミングにも慣れてきましたか? 「アルゴリズム編」では,画像処理で頻繁に用いられるフィル タリングや画像の拡大・縮小の方法について扱います.この節の最後の 課題では今まで学習したことを応用してモザイク画像の生成を行います. なお節ではソースは掲載しません.アルゴリズムとプログラミングの 際の注意事項を示しますので各自で挑戦してみて下さい. この節の扱う課題の次のようになっています. ラプラシアンフィルタ ガウシアンフィルタ 画像の拡大・縮小 画素値の内挿 モザイク画像の生成 ラプラシアンフィルタ [アルゴリズム] ラプラシンフィルタは画像の鮮鋭化やエッジ検出に使用されるフィルタ です.ラプラシアンとは2次微分の意味です.画像の2次微分は次のよう に行います.Bを注目画素とする.両隣の画素A, Cとの差分をとすると,これらは次式で表 せる.ただし

    minodisk
    minodisk 2011/07/06
    ラプラシアンフィルタとガウシアンフィルタ
  • すごい乱数生成アルゴリズム「xorshift」 - Pashango’s Blog

    みなさん、こんにちは、今回は乱数の話です。 特に複数機種でのコンシューマ機でゲームを開発をしていると、機種間で乱数値を統一するために乱数生成アルゴリズムを自作しますよね。 そこでよく使われるアルゴリズムが「線形合同法」です、内容は至って簡単で、以下の漸化式を使います。 A,B,Mは定数で、どの値が入るかは処理系依存です。 例えばUnixなどの処理系ではA=1103515245,B=12345,M=2147483647などが入ります。 C言語ですと以下のようになります。 static unsigned int x=1; void srand(unsigned int s) { x=s; } unsigned int rand() { x=x*1103515245UL+12345UL; return x&2147483647UL; } この「線形合同法」は計算が簡単で高速ですから、いろいろな環

    すごい乱数生成アルゴリズム「xorshift」 - Pashango’s Blog
    minodisk
    minodisk 2011/04/06
    乱数生成 xorshift 高速・高品質
  • がくのほめぱげ - 色の結合演算について(その1)

    Adobe Photoshop,Paint Shop Pro,Gimp などのペイントツールにおいて、「レイヤー(Layer)を重ね、 描画モード(Blend Mode)を切り替え、透過率(Opacity)を与える。」のような使い方は、フォトレタッチだけではなく、 お絵描きするときにも頻繁に行われていることと思います。 描画モード(ブレンドモードとも呼ぶらしい)の操作については、画像を用いて具体的に説明しているホームページをよく見かけますが、 色を結合(合成)するための計算方法として、紹介、解説している書籍、ホームページとなると、ほとんど見かけませんね。 #これって大きく取り上げちゃダメな話なのかなぁ・・・?(^^; このページでは、この描画モードを数式として示します。 ソフトウェア開発者向けの非常にマニアックな内容となっていますが、 描画モードをサポートしているペ

    minodisk
    minodisk 2010/07/01
    ブレンドの式
  • Java Image Processing - Blurring for Beginners

    Introduction This is a short tutorial on blurring techniques for beginners. When I was learning this stuff, there was very little available material which was useful. That's not true of course - there was masses of material, but half of it was way too simple and the other half began "Let T be a vector function evaluated over the half-open interval...." and was full of very scary multi-line equatio

    minodisk
    minodisk 2010/06/24
    各種ブラーのアルゴリズム。ソースが見れる。
  • ActionScript入門Wiki@rsakane - ブレンドモード(アルゴリズム編)

    このページを編集 このページを編集(メニュー非表示編集;α) このページをコピーして新規ページを作成 このページのページ名を変更 このページの編集モードを変更 このページの閲覧/編集権限の変更 このページにファイルをアップロード このウィキにファイルをアップロード(FTP機能/管理者のみ利用可) メニューを編集(メニュー部分は非表示で編集) 右メニューを編集(メニュー部分は非表示で編集)

    minodisk
    minodisk 2010/06/23
    レイヤーブレンドの式
  • 画像処理におけるアルゴリズム

    ここでは各画像処理におけるアルゴリズムを簡単に解説する。 2値化 明るさ調整 色成分の抽出 色反転 コントラスト調整 切り出し ガンマ補正 グレイスケール化 増色 画像枠付加 鏡像反転 ノイズ除去 輪郭抽出 輪郭追跡 拡大縮小 任意角回転 セピア調化 ぼかし 2値化 指定画像を白と黒の2階調の画像に変換する処理であり、研究で作成した2値化処理は単一手動閾値方式、P-タイル法、また、誤差分散法およびその拡張型である Floyd&Steinberg 型誤差分散、Jarvice,Judice&Ninke 型誤差分散の5つである。 次にそれぞれのアルゴリズムについて解説する。 単一手動閾値方式 指定された色深度を基準として、その値より入力画素の色深度値が明るければ白、暗ければ黒色として2値化する。下の式を用いている。 このとき、出力画像は初期状態で黒色となるので、入力画像の画素値が閾値以

    minodisk
    minodisk 2009/12/22
    画像処理色々
  • Image Processing Basics

    的な画像処理手法について 画像のディジタル化(カラー・モノクロ) このページで使用するサンプル画像について 輝度値ヒストグラム カラー画像の画像処理 色の変換(RGB->YUVへの変換) 色の変換(鮮やかさを上げる・下げる) 明るさの調整(γ補正) グレイスケール(モノクロ)画像の画像処理(階調に関する) 明るさの調整(γ補正) 階調値の部分拡大強調 階調イコライゼーション(ヒストグラム均一化) 2値化 グレイスケール(モノクロ)画像の画像処理(フィルタ処理) シャープ化とぼかし ノイズ除去(メディアンフィルタ) 1次微分(差分)によるエッジ検出 2次微分(差分)によるエッジ検出 実際に体験してみる(学内限定) グレイスケール画像の画像処理 カラー画像の画像処理 画像圧縮 一般データの圧縮 画像の圧縮(その1:ランレングス,GIF) 画像の圧縮(その2:JPEG) 参考文献 谷口慶治編

    minodisk
    minodisk 2009/12/22
    画像処理色々
  • edge detection (Sobel filter/Prewitt filter)

    1次微分(差分)によるエッジ検出 画像処理では、いろいろな目的のために画像の中のある領域の境界(エッジ)を検出したいことがあります。 領域の境界では、画素の輝度値の変化が大きいため、画素値の変化に対して微分演算を行えば、エッジの検出を行うことができます。ただし、ディジタル化された画像に対する計算機による処理では、微分演算の代わりに差分演算を行うことによってこれを行うことが可能です。 ただし、通常の差分演算を行うと、画面に含まれる雑音成分にも反応してしまうため、雑音の低減とノイズの除去の両方の働きを持つフィルタがいくつか提案されています。ここでは、その中からSobel(ゾーベル)フィルタ、Prewitt(プレヴィット)フィルタの二つを紹介します。 Sobelフィルタは、ある注目画素を中心とした上下左右の9つの画素値に対して、以下に示すような係数をそれぞれ乗算し、結果を合計します。垂直方向、水

    minodisk
    minodisk 2009/12/22
    エッジ検出。SobelフィルタとPrewittフィルタ。