画像処理ソリューション
これを見れば画像処理の入門から基礎~応用まで全てがわかるのを目指して!
   
翻訳(Translate)

プロフィール

Akira

ニックネーム:Akira
東京都の町田事業所に勤務
画像処理ソフトの開発を行っています。リンクフリーです!
詳細プロフィールは こちら
お問い合わせは、こちら↓

【補助HP】
画像処理ソリューションWeb版 【Newブログ】
イメージングソリューション

スポンサーリンク


カテゴリ

最近のコメント

カレンダー

09 | 2017/10 | 11
S M T W T F S
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -

趣味のブログ

iPhone萬歳!
iPhoneの情報いろいろ。
ブログ学習帳
ブログ、SEO、アフィリエイト情報など(まだまだこれから)
俺流クラフト日記
ハンドメイド作品の記録(現在、放置中)

スポンサーリンク 最近の記事
(09/18)  計測測定展に光切断のデモを出展しました
(08/17)  ディジタル画像技術事典200に記事が載りました
(06/09)  光切断を画像センシング展で公開
(05/14)  中国(上海)へ行って来ました
(04/12)  韓国へ行って来ました
(03/10)  私の求める新人像
(01/18)  エレクトロテストジャパンにカラー光切断法のデモを出展しました。
(12/23)  ユニークアクセス200万達成!
(12/10)  【カラー光切断法】YouTube動画まとめ
(11/04)  国際画像機器展2014にカラー光切断法を出展します。
(10/05)  第25回コンピュータビジョン勉強会@関東に参加してきました。
(09/08)  フーリエ変換の記事を追加しました。
(08/09)  【画像処理】ランキング低下中
(07/06)  記事の更新が停滞中...
(06/08)  画像センシング展2014でカラー光切断法のデモを行います。
(05/17)  カラー光切断法の動画を公開しました。
(04/30)  ソニーα NEX-5Rで星空撮影
(04/10)  カラー光切断法の取込結果を追加しました
(03/08)  Korea Vision Show 2014へ行ってきました
(02/05)  フーリエ変換シリーズを始めます。
(01/06)  2014年、あけましておめでとうございます。
(12/04)  カラー光切断法を公開(国際画像機器展2013にて)
(11/13)  国際画像機器展2013に出展します
(10/14)  「画像処理のためのC#」はじめます。
(09/16)  【C#,VB.NET】高速描画コントロールをバージョンアップしました。
(09/04)  拡大鏡に輝度値表示、ルーラー機能を追加した個人ツールを公開
(08/05)  7月の拍手Top5
(07/06)  2013年6月人気記事Top5
(05/12)  SONY α NEX-5Rレビュー
(04/24)  SONY α NEX-5RY購入

補助線

メインページ使える数学

今回は、あまり画像処理とは関係ないのですが、私の好きな番組の一つ、たけしのコマネチ大学数学科で昨日やっていたテーマの『補助線

本題の問題は説明が難しいので、解説の中で説明していた説明が簡単な問題の1つを紹介します。

【問1】
三角形の内角の和が180°になる事を補助線を使って証明せよ。
補助線


つぎは、コマネチ大学やっていた内容ではないのですが、同じ様に線を引く問題。

【問2】
直線3本で下記4点全てを通る線で結びなさい。
補助線

回答はこちら
  ↓
  ↓
  ↓
  ↓
  ↓
  ↓
  ↓
  ↓
  ↓
  ↓
  ↓
  ↓
  ↓
  ↓
  ↓
  ↓
  ↓
  ↓
  ↓
  ↓


【解1】
三角形のどれか一辺と平行に、かつ残りの一点を通る線を引きます。
すると××はそれぞれ錯角になるので、◯と×と残りの角の和が直線となり、三角形の内角の和が180°となる。

補助線
【解2】
補助線

コマネチ大学の番組では幾何学の問題も割と多く扱われ、何気に画像処理に役に立つ場合もあるので、オススメな番組です。たまに無理矢理、応用したくなったりもします。

問2は既成概念(直線の交点は点上に来る?)に捕らわれていては、なかなか解けない良い例
この問題は実は達人プログラマーという本に載っていた例題なのですが、ちょっと見方を変えるだけで、出来ないと思われる事でも出来る場合があります。
画像処理におけるアルゴリズムやプログラムにおいても、より効率的な方法は無いか?考えるクセを付けておくと、いつか大きな発見があるかもしれません。



Loading...
スポンサーリンク

スポンサーリンク 最近の記事
(09/18)  計測測定展に光切断のデモを出展しました
(08/17)  ディジタル画像技術事典200に記事が載りました
(06/09)  光切断を画像センシング展で公開
(05/14)  中国(上海)へ行って来ました
(04/12)  韓国へ行って来ました
(03/10)  私の求める新人像
(01/18)  エレクトロテストジャパンにカラー光切断法のデモを出展しました。
(12/23)  ユニークアクセス200万達成!
(12/10)  【カラー光切断法】YouTube動画まとめ
(11/04)  国際画像機器展2014にカラー光切断法を出展します。
(10/05)  第25回コンピュータビジョン勉強会@関東に参加してきました。
(09/08)  フーリエ変換の記事を追加しました。
(08/09)  【画像処理】ランキング低下中
(07/06)  記事の更新が停滞中...
(06/08)  画像センシング展2014でカラー光切断法のデモを行います。
(05/17)  カラー光切断法の動画を公開しました。
(04/30)  ソニーα NEX-5Rで星空撮影
(04/10)  カラー光切断法の取込結果を追加しました
(03/08)  Korea Vision Show 2014へ行ってきました
(02/05)  フーリエ変換シリーズを始めます。
(01/06)  2014年、あけましておめでとうございます。
(12/04)  カラー光切断法を公開(国際画像機器展2013にて)
(11/13)  国際画像機器展2013に出展します
(10/14)  「画像処理のためのC#」はじめます。
(09/16)  【C#,VB.NET】高速描画コントロールをバージョンアップしました。
(09/04)  拡大鏡に輝度値表示、ルーラー機能を追加した個人ツールを公開
(08/05)  7月の拍手Top5
(07/06)  2013年6月人気記事Top5
(05/12)  SONY α NEX-5Rレビュー
(04/24)  SONY α NEX-5RY購入

正規直交基底

メインページ使える数学

今回は唐突に正規直交基底の説明なのですが、正規直交基底はフーリエ変換を理解する上で、どうしても知らないと理解できない(理解が深まらない)ので、ここで取り上げたいと思います。

【定義】
ベクトルの大きさが1となり、互いのベクトル(任意の2つのベクトル)が直交するベクトルの組合せ

となります。
ここで、ベクトルの大きさが1という事は、そのベクトルは単位ベクトルであり、
ベクトルが直交するということは、ベクトルの内積が0となる事を意味しています。

もっとも簡単な例として、二次元ベクトルの場合、
正規直交基底
上図のように、e1,e2
正規直交基底
としたとき、このe1,e2は正規直交基底である事は分かると思います。

ここで大事なのが、任意ベクトルe1方向の大きさを,e2方向の大きさをとすると、
  各ベクトルの方向の大きさは内積で求まる!
という特徴があります。
上記の例では

e1方向の大きさ
   = e1 = X  × 1 + Y × 0= X

e2方向の大きさ
   = e2 = X  × 0 + Y × 1= Y  

となります。
逆に
  任意ベクトルは正規直交基底と各大きさを用いて表す事ができる!
という特徴もあります。
任意ベクトルを求めるには正規直交基底の各ベクトルとその大きさをかけて、ベクトルを足し合わせると求まります。
上記の例では

  任意ベクトル  =   × e1 + × e2
             = × (1, 0)+ × (0, 1)
              (, )

となりますが、この例はあまりにも単純な例なので、もう少しだけ具体的にして、ベクトルを

     = (4, 6)

正規直交基底を
正規直交基底
とします。
正規直交基底
このときe1,e2が正規直交基底であるかどうか?は、それぞれのベクトルの大きさと、内積を計算すると確認する事が出来ます。
正規直交基底
正規直交基底
正規直交基底

また、このとき、
e1方向の大きさ
= e1 = 正規直交基底
e2方向の大きさ
= e2 = 正規直交基底

となります。
逆にベクトルVを正規直交基底の
e1,e2とそれぞれの向きの大きさを用いて計算すると
正規直交基底
となり、確かに正規直交基底を用いると任意ベクトルを表すことができそうです。

このことをもう少し一般化して、正規直交基底e1,e2
正規直交基底

としても、任意ベクトル を表すことはできます。
正規直交基底

これをさらに三次元の場合でも、任意ベクトル を表すことができます。
   正規直交基底
このノリでさらにn次元の場合でも同様に正規直交基底をe1,e2・,eとしても、任意n次元ベクトル を表すことができます。

ということで、クドいですが、正規直交基底には
  任意ベクトルを正規直交基底と各大きさを用いて表す事ができる!
という特徴があります。

それって、もうほとんどフーリエ変換の説明になっているのですが、お気づきでしょうか?
フーリエ変換についてはいづれ記事にしたいと思います。

また、画像処理的には、例えばソーベルフィルタでは

-101
-202
-101
-1-2-1
000
121

というように、横方向と縦方向のエッジの大きさを求めたりしますが、2つのカーネルをよくよく見てみると、正規ではない(大きさが1ではない)にしても、9次元ベクトルで2つのベクトルが直行している事がわかります。
その事からも、横方向のエッジの大きさと縦方向のエッジの大きさの比を用いてアークタンジェントを計算して、エッジの角度を求めているのも、妙に納得。


Loading...
スポンサーリンク

スポンサーリンク 最近の記事
(09/18)  計測測定展に光切断のデモを出展しました
(08/17)  ディジタル画像技術事典200に記事が載りました
(06/09)  光切断を画像センシング展で公開
(05/14)  中国(上海)へ行って来ました
(04/12)  韓国へ行って来ました
(03/10)  私の求める新人像
(01/18)  エレクトロテストジャパンにカラー光切断法のデモを出展しました。
(12/23)  ユニークアクセス200万達成!
(12/10)  【カラー光切断法】YouTube動画まとめ
(11/04)  国際画像機器展2014にカラー光切断法を出展します。
(10/05)  第25回コンピュータビジョン勉強会@関東に参加してきました。
(09/08)  フーリエ変換の記事を追加しました。
(08/09)  【画像処理】ランキング低下中
(07/06)  記事の更新が停滞中...
(06/08)  画像センシング展2014でカラー光切断法のデモを行います。
(05/17)  カラー光切断法の動画を公開しました。
(04/30)  ソニーα NEX-5Rで星空撮影
(04/10)  カラー光切断法の取込結果を追加しました
(03/08)  Korea Vision Show 2014へ行ってきました
(02/05)  フーリエ変換シリーズを始めます。
(01/06)  2014年、あけましておめでとうございます。
(12/04)  カラー光切断法を公開(国際画像機器展2013にて)
(11/13)  国際画像機器展2013に出展します
(10/14)  「画像処理のためのC#」はじめます。
(09/16)  【C#,VB.NET】高速描画コントロールをバージョンアップしました。
(09/04)  拡大鏡に輝度値表示、ルーラー機能を追加した個人ツールを公開
(08/05)  7月の拍手Top5
(07/06)  2013年6月人気記事Top5
(05/12)  SONY α NEX-5Rレビュー
(04/24)  SONY α NEX-5RY購入

4点からなる交点の求め方

メインページ使える数学


下図のように4点(P1,P2,P3,P4)からなる2直線(P1~P3P2~P4
の交点を求めるのに
外積を応用した方法を紹介します。
なんだか面倒臭そうと思った方は最後の方の答えを見て頂くと、外積を使った方が良さげだと
分かってもらえる?と思います。


4点からなる交点の求め方
上図から交点C1の位置を求めるには、点P1~点C1と点C1~点P3までの長さの比が分かれば、
P1~点P3の直線を求めた比で分割すると交点が求まることが分かります。

この比は直線P2
P4と、点P1、点P3までのそれぞれの距離の比で求まります。
さらに、この比は
直線P2P4を底辺とする⊿P1P2P4⊿P2P3P4の面積の比で求まります。
(図中に示した隣り合う両矢印の比は全て等しくなります。)

ここでやっと三角形の面積を求めるのに外積が登場してきます。
外積なので、上図のようにベクトルを
  
  ベクトルa1 : 点P2⇒点P4
  ベクトルa2 : 点P1⇒点P3
  ベクトルb1 : 点P3⇒点P2
  ベクトルb2 : 点P2⇒点P1

と定義します。(向きにご注意下さい。)

こうすることで、
  ⊿P1P2P4の面積S1 = (a1 × b2) / 2
  ⊿P2P3P4の面積S2 = (a1 × b1) / 2

となります。(この計算ではあえて外積の値の絶対値を取っていません。)

あとは面積S1とS2との比を使うと交点が求まります。
このことを整理して点P1~点P4の座標を用いて交点の座標を表すと、

面積S1 = {(P4.X - P2.X) * (P1.Y - P2.Y) - (P4.Y - P2.Y) * (P1.X - P2.X)} / 2
面積S2 = {(P4.X - P2.X) * (P2.Y - P3.Y) - (P4.Y - P2.Y) * (P2.X - P3.X)} / 2

となり、交点の座標は

C1.X = P1.X + (P3.X - P1.X) * S1 / (S1 + S2)
C1.Y = P1.Y + (P3.Y - P1.Y) * S1 / (S1 + S2)

となります。  .X 、 .Y はそれぞれ点のX座標Y座標を示します。

と、少し回りくどい説明になってしまいましたが、この計算で交点を求めると、
下図のような点の配置全てに同じ式で求めることができるので、オススメです。

これを知らないと、2直線の式を求めて、直線の交点を求めたりもしますが、直線の傾きが
水平や垂直だった場合などの条件分けをしないといけないので、結構面倒です。
(って、私が昔やっていた方法です...)

(追記)
この処理を水玉製作所の川村様がFlashで実現されています。
4点からなる交点が簡単に求められるのが、これを下記リンク先を見ると分かると思います。
http://www.mztm.jp/2010/08/05/clossline/


4点からなる交点を求める

4点からなる交点を求める。

4点からなる交点を求める。

 

Loading...
スポンサーリンク

スポンサーリンク 最近の記事
(09/18)  計測測定展に光切断のデモを出展しました
(08/17)  ディジタル画像技術事典200に記事が載りました
(06/09)  光切断を画像センシング展で公開
(05/14)  中国(上海)へ行って来ました
(04/12)  韓国へ行って来ました
(03/10)  私の求める新人像
(01/18)  エレクトロテストジャパンにカラー光切断法のデモを出展しました。
(12/23)  ユニークアクセス200万達成!
(12/10)  【カラー光切断法】YouTube動画まとめ
(11/04)  国際画像機器展2014にカラー光切断法を出展します。
(10/05)  第25回コンピュータビジョン勉強会@関東に参加してきました。
(09/08)  フーリエ変換の記事を追加しました。
(08/09)  【画像処理】ランキング低下中
(07/06)  記事の更新が停滞中...
(06/08)  画像センシング展2014でカラー光切断法のデモを行います。
(05/17)  カラー光切断法の動画を公開しました。
(04/30)  ソニーα NEX-5Rで星空撮影
(04/10)  カラー光切断法の取込結果を追加しました
(03/08)  Korea Vision Show 2014へ行ってきました
(02/05)  フーリエ変換シリーズを始めます。
(01/06)  2014年、あけましておめでとうございます。
(12/04)  カラー光切断法を公開(国際画像機器展2013にて)
(11/13)  国際画像機器展2013に出展します
(10/14)  「画像処理のためのC#」はじめます。
(09/16)  【C#,VB.NET】高速描画コントロールをバージョンアップしました。
(09/04)  拡大鏡に輝度値表示、ルーラー機能を追加した個人ツールを公開
(08/05)  7月の拍手Top5
(07/06)  2013年6月人気記事Top5
(05/12)  SONY α NEX-5Rレビュー
(04/24)  SONY α NEX-5RY購入

平面の方程式


下図のように点(X0, Y0, Z0)を通り、法線ベクトルが

  平面の方程式

の平面の方程式は

  
a(Xi - X0) + b(Yi - Y0) +  c(Zi - Z0)  =  0

となり、一般に

  aX + bY + cZ + d = 0

とします。
  平面の方程式

【考え方】
法線ベクトル(a, b, c)と、点(X0, Y0, Z0)を始点とし平面上の任意の点(Xi, Yi, Zi
終点とするベクトルとのなす角度は90度なので、内積が0となるため

  a(Xi - X0) +
b(Yi - Y0) +  c(Zi - Z0)  =  0

となります。
この式を整理すると先ほどの平面の方程式
  
  aX + bY + cZ + d = 0

となる訳です。

ここで、平面の方程式を求める時には、平面は三次元空間上の3点
(X0, Y0, Z0)
(X1, Y1, Z1)(X2, Y2, Z2)から求まるのですが、法線ベクトルは
3点からなる2つのベクトルの外積から求まるので

(a, b, c) = ( (Y1 - Y0) × (Z2 - Z0) - (Y2 - Y0)
× (Z1 - Z0) ,
                (Z1 - Z0)
× (X2 - X0) - (Z2 - Z0) × (X1 - X0) ,
               
(X1 - X0) × (Y2 - Y0) - (X2 - X0) × (Y1 - Y0) )

となるので、平面の方程式が求まります。
 
  平面の方程式

もしくは平面の方程式を連立方程式的に求める場合は、平面の方程式には
未知数が4つあるので、未知数4つに対して、式が3本しか成り立たないので、
未知数を求めることができません。

そこで、法線ベクトルが単位ベクトルとなるように
 a2 + b2 + c2 = 1
という条件を付けてラグランジュの未定乗数法で解ける?と思いますが、
ちょっと難しくなってしまうので、平面の方程式の全体をdで割って、

  aX + bY + cZ + 1 = 0

という形式で平面の方程式を求めます。

4点以上の点から平面の方程式を求める場合には、最小二乗法
擬似逆行列を使って求めます。
それぞれの解き方については、下記ページを参照願います。

  

Loading...
スポンサーリンク

スポンサーリンク 最近の記事
(09/18)  計測測定展に光切断のデモを出展しました
(08/17)  ディジタル画像技術事典200に記事が載りました
(06/09)  光切断を画像センシング展で公開
(05/14)  中国(上海)へ行って来ました
(04/12)  韓国へ行って来ました
(03/10)  私の求める新人像
(01/18)  エレクトロテストジャパンにカラー光切断法のデモを出展しました。
(12/23)  ユニークアクセス200万達成!
(12/10)  【カラー光切断法】YouTube動画まとめ
(11/04)  国際画像機器展2014にカラー光切断法を出展します。
(10/05)  第25回コンピュータビジョン勉強会@関東に参加してきました。
(09/08)  フーリエ変換の記事を追加しました。
(08/09)  【画像処理】ランキング低下中
(07/06)  記事の更新が停滞中...
(06/08)  画像センシング展2014でカラー光切断法のデモを行います。
(05/17)  カラー光切断法の動画を公開しました。
(04/30)  ソニーα NEX-5Rで星空撮影
(04/10)  カラー光切断法の取込結果を追加しました
(03/08)  Korea Vision Show 2014へ行ってきました
(02/05)  フーリエ変換シリーズを始めます。
(01/06)  2014年、あけましておめでとうございます。
(12/04)  カラー光切断法を公開(国際画像機器展2013にて)
(11/13)  国際画像機器展2013に出展します
(10/14)  「画像処理のためのC#」はじめます。
(09/16)  【C#,VB.NET】高速描画コントロールをバージョンアップしました。
(09/04)  拡大鏡に輝度値表示、ルーラー機能を追加した個人ツールを公開
(08/05)  7月の拍手Top5
(07/06)  2013年6月人気記事Top5
(05/12)  SONY α NEX-5Rレビュー
(04/24)  SONY α NEX-5RY購入

任意点周りの回転移動

メインページ使える数学

回転行列では原点周りに点を回転させますが、任意の点(C、C周りに
回転させたい場合にはどうするのか?

   任意点周りの回転移動

これまでの知識を少し応用することで、意外と簡単に求めることができます。

まず、回転する点を回転中心座標が原点と一致するように点を移動させます。

   任意点周りの回転移動

次に移動した点を原点周りに回転移動させます。
   任意点周りの回転移動

回転移動後、点を原点から元の回転中心位置へ移動させます。
   任意点周りの回転移動

これで、任意点
(C、C周りに点を回転移動させることができました。

この処理を行列であらわすと
 任意点回転移動行列

行列部分を整理すると
  任意点周りの回転行列

となり、
任意点(C、C周りに点を回転移動させる行列を求めることができます。

今回は二次元の座標について計算しましたが、三次元の場合も同様です。


 

Loading...
スポンサーリンク

スポンサーリンク 最近の記事
(09/18)  計測測定展に光切断のデモを出展しました
(08/17)  ディジタル画像技術事典200に記事が載りました
(06/09)  光切断を画像センシング展で公開
(05/14)  中国(上海)へ行って来ました
(04/12)  韓国へ行って来ました
(03/10)  私の求める新人像
(01/18)  エレクトロテストジャパンにカラー光切断法のデモを出展しました。
(12/23)  ユニークアクセス200万達成!
(12/10)  【カラー光切断法】YouTube動画まとめ
(11/04)  国際画像機器展2014にカラー光切断法を出展します。
(10/05)  第25回コンピュータビジョン勉強会@関東に参加してきました。
(09/08)  フーリエ変換の記事を追加しました。
(08/09)  【画像処理】ランキング低下中
(07/06)  記事の更新が停滞中...
(06/08)  画像センシング展2014でカラー光切断法のデモを行います。
(05/17)  カラー光切断法の動画を公開しました。
(04/30)  ソニーα NEX-5Rで星空撮影
(04/10)  カラー光切断法の取込結果を追加しました
(03/08)  Korea Vision Show 2014へ行ってきました
(02/05)  フーリエ変換シリーズを始めます。
(01/06)  2014年、あけましておめでとうございます。
(12/04)  カラー光切断法を公開(国際画像機器展2013にて)
(11/13)  国際画像機器展2013に出展します
(10/14)  「画像処理のためのC#」はじめます。
(09/16)  【C#,VB.NET】高速描画コントロールをバージョンアップしました。
(09/04)  拡大鏡に輝度値表示、ルーラー機能を追加した個人ツールを公開
(08/05)  7月の拍手Top5
(07/06)  2013年6月人気記事Top5
(05/12)  SONY α NEX-5Rレビュー
(04/24)  SONY α NEX-5RY購入

擬似逆行列(一般逆行列)

メインページ使える数学

逆行列の計算では行数と列数が等しい正方行列のみ計算が可能でした。
しかし、下記のようにn個の未知数(X1~Xn)に対して、式がm本 (m>n)ある場合、
逆行列を使って解くことができません。

擬似逆行列

上記式を行列であらわすと

擬似逆行列

 擬似逆行列
となり、Aの逆行列が求まれば、Xに関して解く事ができるのですが、Aが正方行列で無い場合は
擬似逆行列一般逆行列ともいう)を用い、擬似逆行列は以下のように定義されます。

擬似逆行列
                         (T は転置行列

すると
擬似逆行列

となりXに関して解くことが可能となります。

以下、エクセルで擬似逆行列を使い、X,Yのデータを二次関数で近似した例を示します。

擬似逆行列
擬似逆行列
擬似逆行列
擬似逆行列

以上のように、擬似逆行列を使って二次関数の係数を求めた場合と、エクセルのグラフの
近似直線を使って求めた二次式と一致することが確認できます。

このエクセルのファイルはこちらです。
エクセルを用いた行列の計算に関しては行列の積、逆行列、転置行列の計算のページも
参照下さい。

 
Loading...
スポンサーリンク

スポンサーリンク 最近の記事
(09/18)  計測測定展に光切断のデモを出展しました
(08/17)  ディジタル画像技術事典200に記事が載りました
(06/09)  光切断を画像センシング展で公開
(05/14)  中国(上海)へ行って来ました
(04/12)  韓国へ行って来ました
(03/10)  私の求める新人像
(01/18)  エレクトロテストジャパンにカラー光切断法のデモを出展しました。
(12/23)  ユニークアクセス200万達成!
(12/10)  【カラー光切断法】YouTube動画まとめ
(11/04)  国際画像機器展2014にカラー光切断法を出展します。
(10/05)  第25回コンピュータビジョン勉強会@関東に参加してきました。
(09/08)  フーリエ変換の記事を追加しました。
(08/09)  【画像処理】ランキング低下中
(07/06)  記事の更新が停滞中...
(06/08)  画像センシング展2014でカラー光切断法のデモを行います。
(05/17)  カラー光切断法の動画を公開しました。
(04/30)  ソニーα NEX-5Rで星空撮影
(04/10)  カラー光切断法の取込結果を追加しました
(03/08)  Korea Vision Show 2014へ行ってきました
(02/05)  フーリエ変換シリーズを始めます。
(01/06)  2014年、あけましておめでとうございます。
(12/04)  カラー光切断法を公開(国際画像機器展2013にて)
(11/13)  国際画像機器展2013に出展します
(10/14)  「画像処理のためのC#」はじめます。
(09/16)  【C#,VB.NET】高速描画コントロールをバージョンアップしました。
(09/04)  拡大鏡に輝度値表示、ルーラー機能を追加した個人ツールを公開
(08/05)  7月の拍手Top5
(07/06)  2013年6月人気記事Top5
(05/12)  SONY α NEX-5Rレビュー
(04/24)  SONY α NEX-5RY購入

ガウスの消去法

メインページ使える数学

ガウス(Gauss)の消去法は連立一次方程式を解くのに用いられます。
基本的な方針は、下記のような連立一次方程式

ガウスの消去法

を行列であらわすと、

ガウスの消去法

となりますが、対角成分を全て、左下の成分をになるように、行の入替えや足し算、引き算などを行い、
下記の行列になるように調整します。

ガウスの消去法
                       (?の部分は任意の値で可)

これまでの処理を前進消去といいます。
ここで、最後の行の部分(X3の部分)に着目すると、答えが確定しています。
この値を使って最後から2行目の値を計算すると答えが算出できます。
このように最後の行から順々に計算すると答えが全て計算することができます。
この処理は後退代入といいます。
この前進消去と後退代入の処理を合わせてガウスの消去法といいます。

さらに、前進消去のときに対角成分を1にするときの割り算の計算のときにおいて、
■0(ゼロ)で割ることはできない。
■値を絶対値の小さい値で割ると、値に誤差が含まれる場合、
  計算結果に大きく影響が出てしまう。

という性質を考慮します。

ということで、以下、具体的な計算例を示します。

連立一次方程式

ガウスの消去法

のうち、まず最初に1の項のどれか1つを1にするのですが、割り算の計算で誤差が少なくなるように
1の係数が一番大きい2行目の式を一番上に持ってきます。

ガウスの消去法

次に1行目の式の1の係数がになるように1行目の式全体を1の係数()で割ります。

ガウスの消去法

次に1行目以下の式の1の項が消えるように、2行目-1行目×23行目-1行目を計算します。

ガウスの消去法

ここで、3行目の式の3の項(行列で表現すると対角成分)が消えてしまったので、このままだと
対角成分をにできないので、2行目3行目を入れ替えます。

ガウスの消去法

次に2行目の式の2の係数をにするように、2行目の式全体に3/2を掛けます。

ガウスの消去法

次に2行目以下の2の項が消えるように3行目+2行目 × を計算します。

ガウスの消去法

3行目の式のの係数はすでになので、前進消去はこれで終了です。
この3本の式を行列であらわすと

ガウスの消去法

というように、対角成分が全てがで左下の成分がになったことが分かります。

次に後退代入です。

一番下の行の式はすでに答えが確定(= 3)しているのがわかります。
一番下の答えを用いて、下から2行目の式の答えを計算、
一番下、下から2行目の答えを用いて下から3行目の式の答えを計算していきます。
(今回の例だけ特別に、下から2行目の式の答えが確定してしまっています。)

ガウスの消去法

こうして全ての答えが求まります。

ガウスの消去法

この一連の処理がガウスの消去法です。

このガウスの消去法を用いると、連立方程式を求めたり、最小二乗法の未知数を
求めることができます。
Loading...
スポンサーリンク

スポンサーリンク 最近の記事
(09/18)  計測測定展に光切断のデモを出展しました
(08/17)  ディジタル画像技術事典200に記事が載りました
(06/09)  光切断を画像センシング展で公開
(05/14)  中国(上海)へ行って来ました
(04/12)  韓国へ行って来ました
(03/10)  私の求める新人像
(01/18)  エレクトロテストジャパンにカラー光切断法のデモを出展しました。
(12/23)  ユニークアクセス200万達成!
(12/10)  【カラー光切断法】YouTube動画まとめ
(11/04)  国際画像機器展2014にカラー光切断法を出展します。
(10/05)  第25回コンピュータビジョン勉強会@関東に参加してきました。
(09/08)  フーリエ変換の記事を追加しました。
(08/09)  【画像処理】ランキング低下中
(07/06)  記事の更新が停滞中...
(06/08)  画像センシング展2014でカラー光切断法のデモを行います。
(05/17)  カラー光切断法の動画を公開しました。
(04/30)  ソニーα NEX-5Rで星空撮影
(04/10)  カラー光切断法の取込結果を追加しました
(03/08)  Korea Vision Show 2014へ行ってきました
(02/05)  フーリエ変換シリーズを始めます。
(01/06)  2014年、あけましておめでとうございます。
(12/04)  カラー光切断法を公開(国際画像機器展2013にて)
(11/13)  国際画像機器展2013に出展します
(10/14)  「画像処理のためのC#」はじめます。
(09/16)  【C#,VB.NET】高速描画コントロールをバージョンアップしました。
(09/04)  拡大鏡に輝度値表示、ルーラー機能を追加した個人ツールを公開
(08/05)  7月の拍手Top5
(07/06)  2013年6月人気記事Top5
(05/12)  SONY α NEX-5Rレビュー
(04/24)  SONY α NEX-5RY購入

回転行列、拡大縮小行列、平行移動行列(三次元座標の場合)

メインページ使える数学

三次元座標の場合、まず座標軸の定義、回転方向の定義を明確に覚えます。

    三次元座標の定義
 この座標は右手座標系と呼ばれます。
 フレミングの法則のときのように右手で親指、人差し指、中指をそれぞれ
 直交するようにします。
 このとき親指から順に親指X軸人差し指Y軸中指Z軸の方向と
 なります。
 回転方向は電流と磁界の向きと同じように電流軸の向き磁界回転方向
 に相当します。(右ねじの法則と同じです。)
 

  回転行列

三次元の回転行列の前に二次元の回転行列のおさらいです。
二次元の回転行列は以下の通りとなります。
二次元座標の回転

これをベースに三次元座標の場合では、回転する軸の正の方向から
原点の方向を見たときに、X軸、Y軸はそれぞれ何軸に相当するのか?
を考えれば、二次元座標のXやYの変数の置き換えで導き出すことが
できます。
行列変換しない軸に関しては単位行列でそのまま残します。

【X軸周りの回転】
X軸周りの回転

【Y軸周りの回転】
Y軸周りの回転


【Z軸周りの回転】

Z軸周りの回転

  拡大縮小行列

点(x, y, z)を原点に関してX軸方向にS倍、Y軸方向にS
Z軸方向にSZ
する行列は

拡大行列

  平行移動行列

点(x, y, z)をX軸方向にT、Y軸方向にT、Z軸方向にTZだけ移動する
行列は

平行移動

 


三次元の座標変換に関して検索すると座標変換は下記のように

行ベクトル

行ベクトルで表記される場合もあるのですが、変換行列の値が変わるので、
混同しないようご注意下さい。
おそらくDirectX(Direct3D)でしか使われないので、特に必要の無い場合は
覚えない方が無難です。

Loading...
スポンサーリンク

スポンサーリンク 最近の記事
(09/18)  計測測定展に光切断のデモを出展しました
(08/17)  ディジタル画像技術事典200に記事が載りました
(06/09)  光切断を画像センシング展で公開
(05/14)  中国(上海)へ行って来ました
(04/12)  韓国へ行って来ました
(03/10)  私の求める新人像
(01/18)  エレクトロテストジャパンにカラー光切断法のデモを出展しました。
(12/23)  ユニークアクセス200万達成!
(12/10)  【カラー光切断法】YouTube動画まとめ
(11/04)  国際画像機器展2014にカラー光切断法を出展します。
(10/05)  第25回コンピュータビジョン勉強会@関東に参加してきました。
(09/08)  フーリエ変換の記事を追加しました。
(08/09)  【画像処理】ランキング低下中
(07/06)  記事の更新が停滞中...
(06/08)  画像センシング展2014でカラー光切断法のデモを行います。
(05/17)  カラー光切断法の動画を公開しました。
(04/30)  ソニーα NEX-5Rで星空撮影
(04/10)  カラー光切断法の取込結果を追加しました
(03/08)  Korea Vision Show 2014へ行ってきました
(02/05)  フーリエ変換シリーズを始めます。
(01/06)  2014年、あけましておめでとうございます。
(12/04)  カラー光切断法を公開(国際画像機器展2013にて)
(11/13)  国際画像機器展2013に出展します
(10/14)  「画像処理のためのC#」はじめます。
(09/16)  【C#,VB.NET】高速描画コントロールをバージョンアップしました。
(09/04)  拡大鏡に輝度値表示、ルーラー機能を追加した個人ツールを公開
(08/05)  7月の拍手Top5
(07/06)  2013年6月人気記事Top5
(05/12)  SONY α NEX-5Rレビュー
(04/24)  SONY α NEX-5RY購入

逆行列(Gauss-Jordan法)

 2×2行列の逆行列
行列行列の逆行列は
 逆行列
となる。
ただし、ad-bc=0のとき、逆行列は存在しない。


 3×3以上の行列の逆行列
Gauss-Jordan法による解き方の例を以下に示します。
基本的には行列の右側に単位行列を付け足して、行ごとに掛け算、足し算、引き算をして
左側が単位行列になるようにして、最後に右側に残った行列が逆行列となります。
といっても分かりづらいので、具体的な計算例は以下のとおりです。

行列
行列
の右側に単位行列を追加します。
逆行列
1行1列目の要素が1となるように1行目を2で割ります。
逆行列
1列目の要素が(1 0 0)となるように[2行目]-[1行目]
[3行目]-[1行目]×4を計算します。
逆行列
2行2列目の要素が1となるように2行目を2倍します。
逆行列
2列目の要素が(0 1 0)となるように[1行目]-[2行目]×3/2[3行目]+[2行目]を計算します。
逆行列
3行3列目の要素はすでに1なので、3列目の要素が(0 0 1)となるように
[1行目]+[3行目]×2[2行目]-[3行目]×2を計算します。
逆行列
これで、左側が単位行列となり、右側にできた行列が求める逆行列となります。

 逆行列のサンプルプログラム
上記のアルゴリズムをそのままプログラムにすると

///////////////////////////////////////////////////////////////////////////
//
// Gauss-Jordan法による逆行列
//
int MatInverse(
    double *Mat,    //逆行列を求める行列
    double *Inv,      //求めた逆行列
    int n                //逆行列の大きさ n行×n列行列
    ){
    int i, j, k;
    double temp;

    //単位行列で初期化
    for (j = 0; j < n; j++){
        for (i = 0; i < n; i++){
            if (i == j){
                Inv[i + j * n] = 1;
            }else{
                Inv[i + j * n] = 0;
            }
        }
    }

    for (k = 0; k < n; k++){
        //k行k列目の要素を1にする
        temp = Mat[k + k * n];
        if (temp == 0) return -1;    //エラー
        for (i = 0; i < n; i++){
            Mat[i + k * n] /= temp;
            Inv[i + k * n] /= temp;
        }

        for (j = 0; j < n; j++){
            if (j != k){
                temp = Mat[k + j * n] / Mat[k + k * n];
                for (i = 0; i < n; i++){
                    Mat[i + j * n] -= Mat[i + k * n] * temp;
                    Inv[i + j * n] -= Inv[i + k * n] * temp;
                }           
            }
        }
    }
    //正常終了
    return 0;
}

上記の例のように呼び出す側は
    double Mat[9];
    double Inv[9];

    Mat[0] = 2; Mat[1] = 3; Mat[2] = 2;
    Mat[3] = 1; Mat[4] = 2; Mat[5] = 2;
    Mat[6] = 4; Mat[7] = 5; Mat[8] = 3;

    //逆行列を求める
    MatInverse(Mat, Inv, 3);

という感じで。
ただし、Matには関数処理後、単位行列が書き込まれます。


Loading...
スポンサーリンク

スポンサーリンク 最近の記事
(09/18)  計測測定展に光切断のデモを出展しました
(08/17)  ディジタル画像技術事典200に記事が載りました
(06/09)  光切断を画像センシング展で公開
(05/14)  中国(上海)へ行って来ました
(04/12)  韓国へ行って来ました
(03/10)  私の求める新人像
(01/18)  エレクトロテストジャパンにカラー光切断法のデモを出展しました。
(12/23)  ユニークアクセス200万達成!
(12/10)  【カラー光切断法】YouTube動画まとめ
(11/04)  国際画像機器展2014にカラー光切断法を出展します。
(10/05)  第25回コンピュータビジョン勉強会@関東に参加してきました。
(09/08)  フーリエ変換の記事を追加しました。
(08/09)  【画像処理】ランキング低下中
(07/06)  記事の更新が停滞中...
(06/08)  画像センシング展2014でカラー光切断法のデモを行います。
(05/17)  カラー光切断法の動画を公開しました。
(04/30)  ソニーα NEX-5Rで星空撮影
(04/10)  カラー光切断法の取込結果を追加しました
(03/08)  Korea Vision Show 2014へ行ってきました
(02/05)  フーリエ変換シリーズを始めます。
(01/06)  2014年、あけましておめでとうございます。
(12/04)  カラー光切断法を公開(国際画像機器展2013にて)
(11/13)  国際画像機器展2013に出展します
(10/14)  「画像処理のためのC#」はじめます。
(09/16)  【C#,VB.NET】高速描画コントロールをバージョンアップしました。
(09/04)  拡大鏡に輝度値表示、ルーラー機能を追加した個人ツールを公開
(08/05)  7月の拍手Top5
(07/06)  2013年6月人気記事Top5
(05/12)  SONY α NEX-5Rレビュー
(04/24)  SONY α NEX-5RY購入

行列で連立方程式を解く

メインページ使える数学

行列を使って連立方程式を解く方法を紹介します。

【計算例
3つの方程式
 連立方程式

を行列であらわすと

連立方程式を行列であらわす

となります。この行列を逆行列を使ってX、Y、Zに関して解くと
 行列で連立方程式を解く

となり連立方程式を行列で解くことができます。

というのは普通すぎて面白くないので、3点からなる円の方程式を行列で解く方法を紹介します。


中心(a、b)、半径 r の円の方程式

  (X - a)2 + (Y - b)2 = r2

を展開して

  X+ Y2
 - 2aX - 2bY + a2 + b2 - r =  0

となり、A = 2a、B = 2b、C = r2 - a2 - b2  とおくと、上式は


  AX + BY + C  =   X2  + Y

となります。
ここで、円上の3点(X0、Y0)、(X1、Y1)、(X2、Y2)を代入すると

  AX0 + BY0 + C  =  X02  + Y02    
  AX1 + BY1 + C  =  X1+ Y12 
  AX2 + BY2 + C  =  X2+ Y22 

の3本の式が成り立ち、これを行列で表現すると、

 行列で円の方程式を解く

となり、A、B、Cに関して行列を解くと
 円の方程式を解く

となり、A、B、Cが求まることから、A = 2a、B = 2b、C = r2 - a2 - b2  より
中心と半径を求めることができる。

行列を解く部分は
 ガウスの消去法
のページを参照下さい。

逆行列はエクセルでも解くことができるので、
  行列の積、逆行列、転置行列の計算
のページも御参照下さい。


Loading...
スポンサーリンク



現在の閲覧者数: / 合計