タグ

2013年10月19日のブックマーク (9件)

  • 判別分析法(大津の二値化) 画像処理ソリューション

    判別分析法【discriminant analysis method】は大津の二値化とも言われ、分離度(separation metrics)という値が最大となるしきい値を求め、自動的に二値化を行う手法です。 分離度はクラス間分散(between-class variance)とクラス内分散(within-class variance) との比で求める事ができ、以下の様に求める。 しきい値 t で二値化したとき、しきい値よりも輝度値が小さい側(黒クラス)の画素数をω1、 平均をm1、分散をσ1、輝度値が大きい側(白クラス)の画素数を画素数をω2、平均をm2、 分散をσ2、画像全体の画素数をωt、平均をmt、分散をσtとしたときクラス内分散σw2は クラス間分散σb2は としてあらわす事ができる。 ここで、全分散(total variance)σtは としてあらわす事ができることから、求める

    babydaemons
    babydaemons 2013/10/19
    "結局、標準偏差とか関係なく、黒、白それぞれの領域のヒストグラムから、画素数ωと輝度値の平均値mから上記の値が最大となるしきい値 t をしらみつぶしに求めればいいので、以外と簡単..."
  • 判別分析法(⼤津の2値化)

    B: B:画像処理の基操作 (4)しきい値⾃動設定 【解説】 画像の統計量を利⽤して,2値化のしきい値を決定する ①Pタイル法 ②モード法 画像の⼆値化したい領域が全 画像の領域に占める割合を パーセント(%)で指定し⼆ 値化する⼿法.パーセントは 別の⽅法で求めなければなら ず,完全⾃動ではない. 100 画像の濃度ヒストグラムを求 めた時、「双峰性」の分布を ⽰す場合、濃度ヒストグラム の「⾕」の位置を閾値に決め る⽅法.⾕ができない場合に は難しい. 20 頻度の最大 値を検索 累 積 50 % しきい値 0 127 画素値 “40%”と決める 頻 度 10 % しきい値 中点 頻度の最大 値を検索 255 0 127 画素値 255 Powerpoint Templates Page 27 B: B:画像処理の基操作 (4)しきい値⾃動設定 ③判別分

  • C#で大津の2値化処理を行う : Gがんずと画像処理の書斎

    babydaemons
    babydaemons 2013/10/19
    式が間違ってる:"tmp = sum1 * sum2 * (int)(Math.Pow((m2 - m1), 2));"が正解。#こっちは、クラス間分散を求めてなさげだけど、評価式を変形してる??
  • 大津のしきい値選定法

    各画素が区間 の範囲の濃淡値 をもつような画像を考える。このとき、 画像の濃淡値の分布は、ヒストグラム で与えられる。こ こで、 はその画像に濃淡値 があらわれる頻度を表す。これを全画素数 で正規化して、正規化ヒストグラムを とする。 今、しきい値 によって各画素を2つのクラス と (対象領域と背 景、あるいはその逆)に分類することを考える。ここで、 は濃淡値が の範囲にある画素の集合であり、 は濃淡値が の範囲にある画素の集合である。このとき、しきい値 に依存 して各クラスの統計量は、

  • Visual C++ 2010 Expressを用いた易しい画像処理(9) ----- 白黒化と二値化(グローバルしきい値法、ローカルしきい値法) ---

    画像処理の中で、モノクロ化は原画像のピクセルの色情報を単独で処理するものの一つであるが、それ自身の応用は、あまりなく、画像から物体や文字を抽出するための二値化の前処理として用いられることが多い。二値化も、ピクセルの単独処理の一つであるが、二値化に使用するしきい値を、周辺のピクセル値を参照して決定するローカルしきい値法を用いると良い結果が得られる。ここでは、ローカルしきい値法で著名なSauvolaの方法を、一部変更して使用する。 モノクロ(白黒)画像とカラー画像のモノクロ化 モノクローム(monochrome、単色)画像を略したもので、白黒画像ともグレイスケール(grayscale)画像とも言う。画像を白から黒までの明暗だけで表現し、R、G、Bに分解すると、それらの値は同一である。 NTSC(National Television System Committee)方式のテレビでは輝度

  • 多変量解析

    データの中には、多くのトレンド(傾向)が必ず隠れています。このトレンドをつかむことができるのならば優位に意思決定を進めることができます。 このページでは、データの中からトレンドを見つける多変量解析の手法を紹介します。 ことわざで「木を見て森を見ず(You can't see the forest wood for the trees. )」といわれるように、データマイニングの分野ではマクロ(巨視的)な視点で全体を捉える能力が求められます。 とはいえ、データの要素数が多くなると全体像を捕らえることが困難になるのです。 コンピュータは局所的な数値の集合として全体を把握していますので、意味ある情報として全体を見ることが不得意です。逆に人間には、もともと空間的に全体像を捉える能力が超越しています。 例をあげて解説します。 左図は写真です。写真も「画素」と呼ばれる一つ一つの情報の集まりで全

  • 固有ベクトル計算

  • 行列式の計算

    const int N = 3; double determinant(const double x[][N]) { double tmp[N][N]; memcpy(tmp, x, sizeof(tmp)); // make pivots non-zero numbers for (int i = 0; i < N; i++) { if (tmp[i][i] != 0) continue; int k; for (k = 0; k < N; k++) if (tmp[k][i] != 0) break; if (k == N) // all numbers in a column is zero return 0; for (int j = 0; j < N; j++) tmp[i][j] += tmp[k][j]; } // make a triangular matrix for (

    babydaemons
    babydaemons 2013/10/19
    こっちはPivot実装済み。
  • 行列式の値の求め方、逆行列の作り方の C 言語プログラム

    なぜかこの時期に「行列式の値」と「逆行列」を作成するプログラムを毎年書いている気がして、その都度作るのが非常に面倒臭いので、今後も困らないようにアップしておく。 行列式の値の求め方 ・2 次の場合 たすきがけで簡単に解ける。 double a[2][2]={{1,2},{4,-1}}; double det=0.0; det=a[0][0]*a[1][1]; det-=a[0][1]*a[1][0]; printf("%f\n",det); // -> -9.000000 ・3 次の場合 サラスの方法で簡単に解ける。 double a[3][3]={{1,8,9},{-3,2,1},{4,1,5}}; double det=0.0; det=a[0][0]*a[1][1]*a[2][2]; det+=a[1][0]*a[2][1]*a[0][2]; det+=a[2][0]*a[0][1]

    babydaemons
    babydaemons 2013/10/19
    Pivot実装して無いじゃん。扱うデータが対角要素はゼロにならないはずなのでいいんだけど。