<?xml version="1.0" encoding="UTF-8" ?><rdf:RDF 
  xmlns="http://purl.org/rss/1.0/"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:atom="http://www.w3.org/2005/Atom"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xml:lang="ja">
  <channel rdf:about="http://w.atwiki.jp/cvlec/">
    <title>cvlec @ ウィキ</title>
    <link>http://w.atwiki.jp/cvlec/</link>
    <atom:link href="https://w.atwiki.jp/cvlec/rss10.xml" rel="self" type="application/rss+xml" />
    <atom:link rel="hub" href="https://pubsubhubbub.appspot.com" />
    <description>cvlec @ ウィキ</description>

    <dc:language>ja</dc:language>
    <dc:date>2013-12-21T11:13:47+09:00</dc:date>
    <utime>1387592027</utime>

    <items>
      <rdf:Seq>
                <rdf:li rdf:resource="https://w.atwiki.jp/cvlec/pages/22.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/cvlec/pages/21.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/cvlec/pages/20.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/cvlec/pages/19.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/cvlec/pages/18.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/cvlec/pages/15.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/cvlec/pages/14.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/cvlec/pages/13.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/cvlec/pages/12.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/cvlec/pages/11.html" />
              </rdf:Seq>
    </items>
	
		
    
  </channel>
    <item rdf:about="https://w.atwiki.jp/cvlec/pages/22.html">
    <title>数独</title>
    <link>https://w.atwiki.jp/cvlec/pages/22.html</link>
    <description>
      *数独を解く

**Python環境の準備

[[Anaconda python]] のページで、Anaconda pythonをインストールしている前提

今回はnotebookを使います。 
#highlight(){
ipython notebook --pylab=inline
}

notebook の pylab 環境ではない場合には、ipython を立ち上げて、以下のライブラリ読み出しで pylab が使えるようにします。

#highlight(python){
from pylab import *
}

** プログラム

プログラム中の# は、コメントなので入力しなくてもOK

#highlight(python){

def checkzero(mm):
# 入力された数列から0値のインデックスリストを作成
    rex = []
    for i in range(0,len(mm)):
        if mm[i] == 0:
            rex.append(i)
    return rex

def convxy(idx):
# 0 から 80 のインデックスを X,Y 座標に変換
    y = int(idx/9)
    x = idx - y * 9
    return y,x

def cropvar(mm,idx):
# 数独のデータから、横(hval), 縦(vval),ボックス(box)の値を抽出
    y,x = convxy(idx)
    hval = mm[y,:]
    vval = mm[:,x]
    bx = int(x/3)*3
    by = int(y/3)*3

    box = mm[by:by+3,bx:bx+3]
    # flatten() は、行列を１次元ベクトルに変換
    return box.flatten(),hval,vval,(y-by)*3+(x-bx),y,x


def expectval(j):
# 縦、横、ボックスのリストから出てきていない数値を抽出する
    cc = [0,0,0,0,0,0,0,0,0,0]
     </description>
    <dc:date>2013-12-21T11:13:47+09:00</dc:date>
    <utime>1387592027</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/cvlec/pages/21.html">
    <title>Anaconda python</title>
    <link>https://w.atwiki.jp/cvlec/pages/21.html</link>
    <description>
      *Anaconda Python

Pythonはいろいろとライブラリが揃っているのですが、Windows環境ではいろいろと環境設定が面倒なところもあるので
まとめて環境を設定してくれるものが楽です。

ここから、ダウンロードします。
http://continuum.io/downloads


含まれているパッケージは、http://docs.continuum.io/anaconda/pkgs.html　を参照ください。
よく使うものとしては、
- NumPy
- SciPy
- IPython
- Matplotlib

notebookは、Webブラウザでインターラクティブに pythonのコード編集と結果を見られるツールです。
使い方は、コマンドプロンプトを立ち上げて

#highlight(){
ipython notebook --pylab=inline
}

とします。ipython は、コードの補完やヒストリーが使える pythonのフロントエンドで、
notebook を pylab をブラウザ内に表示するように立ち上げます。

すると、IPython Dashboard というページが開きます。
[New Notebook]ボタンを押すと、編集画面になります。

コマンドの入力に対して、[Shift + Enter] で python にセルに書き込まれたプログラムを送信して、
結果をセルの下に表示します。    </description>
    <dc:date>2013-12-21T10:33:38+09:00</dc:date>
    <utime>1387589618</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/cvlec/pages/20.html">
    <title>カメラキャリブレーションとは</title>
    <link>https://w.atwiki.jp/cvlec/pages/20.html</link>
    <description>
      * ピンホールカメラモデルの歪みのモデル
カメラレンズの歪みを、半径方向の歪み(radial distortion)と、円周方向の歪み(tangential distortion)として、以下の式をモデルとして使う場合が多い。
$$x&#039; = x / z$$
$$y&#039; = y / z$$
$$x&#039;&#039; = x&#039; (1 + k_{1} r^2 + k_{2} r^4 + k_{3} r^6) + 2 p_{1} x&#039; y&#039; + p_{2} (r^2 + 2 x&#039;^2) $$
$$y&#039;&#039; = y&#039; ( 1+ k_{1} r^2 + k_{2} r^4 + k_{3} r^6) + p_{1} (r^2 + 2 y&#039;^2) + 2 p_{2} x&#039; y&#039; $$

ここでは、
- $$x,y,z$$ カメラ座標系での対象の３次元位置
- $$r^2 = x&#039;^2 + y&#039;^2$$

画像の位置は
$$u = f_{x} x&#039;&#039; + c_{x}$$
$$v = f_{y} y&#039;&#039; + c_{y}$$
ただし
- $$f_{x}$$ X方向焦点距離
- $$f_{y}$$ Y方向焦点距離
- $$c_{x}$$ X方向主点位置
- $$c_{y}$$ Y方向主点位置

* カメラキャリブレーションとは
カメラキャリブレーションのプログラムでは、上述のパラメータのうち次のパラメータを複数のキャリブレーションパターンを撮影した画像から求めることとなる。
- $$f_x$$ 
- $$f_y$$ 
- $$c_x$$
- $$c_y$$
- $$k_1$$
- $$k_2$$
- $$p_1$$
- $$p_2$$

* 使い方
カメラの歪みモデルは、理想的な位置から歪んだ実際の画像上の位置を変換する式である。そのため、画像の特徴点の２次元位置から理想的な歪みの無い位置を直接求めることはできない。一般には次の方法を使う

** 画像の歪みを画像全体で一度に補正する方法
補正するための各座標点の変換値をテーブルとして保持する。
画像のサイズの全ての画素に対して、歪み位置を計算してテーブルとして保持しておき、その近傍画素の値から内挿した値を使って歪み補正画像を作成して、それを参照する。

** モデル式のヤコビアンか    </description>
    <dc:date>2011-08-07T15:16:28+09:00</dc:date>
    <utime>1312697788</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/cvlec/pages/19.html">
    <title>キャリブレーションプログラムの使い方</title>
    <link>https://w.atwiki.jp/cvlec/pages/19.html</link>
    <description>
      * 実行プログラムの準備

OpenCVのカメラキャリブレーションは、サンプルに付属の calibration.cpp をそのまま利用します。

** ソースからビルドする場合

ViualStudio（Expressバージョンは無料で利用可能）が必要

- OpenCV 1.0 は下記のリンクから OpenCV1_1.0.exe(セルフ解凍インストーラー）をダウンロードできます。
http://sourceforge.net/projects/opencvlibrary/files/opencv-win/1.0/OpenCV_1.0.exe/download

- c:\OpenCV1.0 としてインストールする
- VisualStudioを起動する
- New プロジェクトで、Windows コンソールプログラムのプロジェクトを設定
- samples/c/calibration.cpp をプロジェクトフォルダーにコピー
- プロパティから includeパスに以下のパスを追加
-- c:\OpenCV1.0\cv\include
-- c:\OpenCV1.0\cvaux\include
-- c:\OpenCV1.0\cxcore\include
-- c:\OpenCV1.0\otherlibs\highgui
- プロパティの libパスに以下のパスを追加
-- c:\OpenCV1.0\lib
- ビルド
- 実行時には、c:\OpenCV1.0\bin が環境変数PATHに追加されている必要がある（もしくは、必要なcv100.dllなどを実行ファイルと同じ場所にコピーする)

** プレビルドパッケージをダンロードする場合

- ソースからビルドして必要なDLLを同梱したプログラムを
[[cameracalib.zip&gt;&gt;http://www18.atwiki.jp/cvlec/pub/opencvcamcalib/cameracalib.zip]] からダウンロード
- 展開

* キャリブレーションパターンの印刷

- OpenCVのカメラキャリブレーションでは、市松模様の平面パターンを使います.下のA4版パターンのダウンロードする
-- [[checkerboard.pdf&gt;    </description>
    <dc:date>2011-08-07T15:22:26+09:00</dc:date>
    <utime>1312698146</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/cvlec/pages/18.html">
    <title>Processing + JMyronによるWebCamからの画像保存</title>
    <link>https://w.atwiki.jp/cvlec/pages/18.html</link>
    <description>
      * capture &amp; save sample program

ここでは、JMyronのライブラリを使って画像の表示と保存を行う。

[[capturesample.pde &gt; http://www18.atwiki.jp/cvlec/pub/src/capturesample.pde]] 右クリック＋「ファイルへ保存」でローカルに保存して

#highlight(java){{
// JMyron を利用するためのライブラリの読み込み
import JMyron.*;

// カメラオブジェクト
JMyron cam;
// カメラの解像度X　事前にサポートされている値を設定
int CAMWIDTH = 640;
// カメラの解像度Y
int CAMHEIGHT = 480;

// プログラムが起動後に呼び出される関数
void setup() {
  // フレームのサイズをカメラのキャプチャーサイズに合わせる
  size(CAMWIDTH,CAMHEIGHT);
  
  // カメラオブジェクトの初期化
  cam = new JMyron();
  // カメラの取り込みを指定解像度で開始
  cam.start(CAMWIDTH, CAMHEIGHT);
  // JMyronの領域検出機能を抑制
  cam.findGlobs(0);
}

// 画面が書き換わるときに呼び出される関数
void draw()
{
  // カメラの取り込みを更新
  cam.update();
  // カメラの画像のポインタを取り込み
  int [] img = cam.image();

  // 表示画素を上書きする場合には、loadPixels()が必要
  loadPixels();
  // 表示画素を取り込んだ画素で置き換える
  for (int i =0 ; i &lt; CAMWIDTH * CAMHEIGHT ; i++){
    // pixles[] は、表示画素へのアクセス
    pixels[i] = img[i];
  }  
  // 表示画素の内容を更新して書き換え
  updatePixels();
  
}

// マウ    </description>
    <dc:date>2011-08-07T09:40:13+09:00</dc:date>
    <utime>1312677613</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/cvlec/pages/15.html">
    <title>Processingのインストール</title>
    <link>https://w.atwiki.jp/cvlec/pages/15.html</link>
    <description>
      * Processingのダウンロード

- http://www.processing.org/ の　[[Downloadsのページ&gt;http://www.processing.org/download/]]から[[processing-1.5.1-windows.zip&gt;http://processing.googlecode.com/files/processing-1.5.1-windows.zip]]をダウンロード
- ZIP形式のファイルなので、そのまま展開ツールでc:\workなどに展開（Windows7の場合は、c:\Program Files\への展開は管理者権限を伴うのでおすすめしません）
- processing-1.5.1 のフォルダが展開されて、そこに processing.exe がある。しかし、ここで起動をさせずに、次の JMyron のインストールを行う。

* JMyronのインストール

- http://webcamxtra.sourceforge.net/download.shtml からProcessing 向けのライブラリである[[JMyron0025.zip&gt;http://webcamxtra.sourceforge.net/distro/JMyron0025.zip]]をダウンロード

- 展開後に、
-- JMyron -&gt; processing-1.5.1/modes/java/libraries/ にコピー
-- JMyron Examples -&gt; processing-1.5.1/modes/java/examples/ にコピー
-- Extra DLLs/DSVL.dll -&gt; processing-1.5.1/ にコピー
-- Extra DLLS/myron_ezcam.dll -&gt; processing-1.5.1/ にコピー

- Windows7 64bit環境では、JMyronはJava32bitでないと動作しない。そのため、前述のProcessingはJava(32bit) を含めたバージョンを使用する。

* Processingの起動テスト
今回ダウンロードしたファイルには、Javaの実行環境も同梱されているため、Processing.exe をその    </description>
    <dc:date>2011-08-06T15:36:37+09:00</dc:date>
    <utime>1312612597</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/cvlec/pages/14.html">
    <title>行列</title>
    <link>https://w.atwiki.jp/cvlec/pages/14.html</link>
    <description>
      * 行列表現
行列は、Ｍ行ｘＮ列と行の次に列として表現する。
そのため、添え字は $$a_{mn}$$ と表記する。

3x4の行列$$a$$の要素は、次のような要素となる。
$$\left(\begin{array}{ccc}a_{11} &amp; a_{12} &amp; a_{13} &amp; a_{14} \\ a_{21} &amp; a_{22} &amp; a_{23} &amp; a_{24} \\ a_{31} &amp; a_{32} &amp; a_{33} &amp; a_{34} \\ \end{array} \right)$$

行列は、乗算する順番が重要となる。右側からかけるか、左側からかけるかが重要となる。    </description>
    <dc:date>2011-07-21T21:49:03+09:00</dc:date>
    <utime>1311252543</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/cvlec/pages/13.html">
    <title>tips</title>
    <link>https://w.atwiki.jp/cvlec/pages/13.html</link>
    <description>
      **分からないことは？
-[[@wiki ご利用ガイド&gt;http://atwiki.jp/guide/]]
-[[よくある質問&gt;http://atwiki.jp/guide/category1.html]]
-[[無料で会員登録できるSNS内の@wiki助け合いコミュニティ&gt;http://sns.atfb.jp/view_community2.php?no=112]]
-[[@wiki更新情報&gt;http://www1.atwiki.jp/guide/pages/264.html]]
-[[@wikiへのお問合せフォーム&gt;http://atwiki.jp/helpdesk]]
等をご活用ください

**@wiki助け合いコミュニティの掲示板スレッド一覧
#atfb_bbs_list(112)

**その他お勧めサービスについて
-[[大容量１Ｇ、PHP/CGI、MySQL、FTPが使える無料ホームページは@PAGES&gt;&gt;http://atpages.jp/]]
-[[無料ブログ作成は@WORDをご利用ください&gt;&gt;http://atword.jp/]]
-[[2ch型の無料掲示板は@chsをご利用ください&gt;&gt;http://atchs.jp/]]
-[[フォーラム型の無料掲示板は@bbをご利用ください&gt;&gt;http://atbb.jp/]]
-[[お絵かき掲示板は@paintをご利用ください&gt;&gt;http://atpaint.jp/]]
-[[その他の無料掲示板は@bbsをご利用ください&gt;&gt;http://atbbs.jp/]]
-[[無料ソーシャルプロフィールサービス @flabo(アットフラボ)&gt;&gt;http://sns.atfb.jp]]

**おすすめ機能
-[[気になるニュースをチェック&gt;http://atwiki.jp/guide/17_174_ja.html]]
-[[関連するブログ一覧を表示&gt;http://atwiki.jp/guide/17_161_ja.html]]

**その他にもいろいろな機能満載！！
-[[@wikiプラグイン&gt;http://atwiki.jp/guide/category17.html]]
-[[@wiki便利ツール&gt;http://atwiki.jp/guide/category32.    </description>
    <dc:date>2011-07-21T21:41:12+09:00</dc:date>
    <utime>1311252072</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/cvlec/pages/12.html">
    <title>プラグイン/人気商品一覧</title>
    <link>https://w.atwiki.jp/cvlec/pages/12.html</link>
    <description>
      * 人気商品一覧
@wikiのwikiモードでは
 #price_list(カテゴリ名)
と入力することで、あるカテゴリの売れ筋商品のリストを表示することができます。

カテゴリには以下のキーワードがご利用できます。
|キーワード|表示される内容|
|ps3|PlayStation3|
|ps2|PlayStation3|
|psp|PSP|
|wii|Wii|
|xbox|XBOX|
|nds|Nintendo DS|
|desctop-pc|デスクトップパソコン|
|note-pc|ノートパソコン|
|mp3player|デジタルオーディオプレイヤー|
|kaden|家電|
|aircon|エアコン|
|camera|カメラ|
|game-toy|ゲーム・おもちゃ全般|
|all|指定無し|

空白の場合はランダムな商品が表示されます。

※このプラグインは[[価格比較サイト@PRICE&gt;&gt;http://atprice.jp]]のデータを利用しています。

-----

たとえば、
 #price_list(game-toy)
と入力すると以下のように表示されます。

ゲーム・おもちゃ全般の売れ筋商品
#price_list(game-toy)

ノートパソコンの売れ筋商品
#price_list(game-toy)

人気商品リスト
#price_list()
    </description>
    <dc:date>2011-07-20T21:51:56+09:00</dc:date>
    <utime>1311166316</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/cvlec/pages/11.html">
    <title>プラグイン/コメント</title>
    <link>https://w.atwiki.jp/cvlec/pages/11.html</link>
    <description>
      * コメントプラグイン
@wikiのwikiモードでは
 #comment()
と入力することでコメントフォームを簡単に作成することができます。
詳しくはこちらをご覧ください。
＝＞http://atwiki.jp/guide/17_60_ja.html


-----
たとえば、#comment() と入力すると以下のように表示されます。

#comment    </description>
    <dc:date>2011-07-20T21:51:56+09:00</dc:date>
    <utime>1311166316</utime>
  </item>
  </rdf:RDF>
